migration_042.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * @Author: LinkLeong link@icewhale.org
  3. * @Date: 2022-08-24 17:36:00
  4. * @LastEditors: LinkLeong
  5. * @LastEditTime: 2022-09-05 11:24:27
  6. * @FilePath: /CasaOS/cmd/migration-tool/migration-034-035.go
  7. * @Description:
  8. * @Website: https://www.casaos.io
  9. * Copyright (c) 2022 by icewhale, All Rights Reserved.
  10. */
  11. package main
  12. import (
  13. "os"
  14. interfaces "github.com/IceWhaleTech/CasaOS-Common"
  15. "github.com/IceWhaleTech/CasaOS-Common/utils/version"
  16. "github.com/IceWhaleTech/CasaOS/pkg/utils/command"
  17. )
  18. type migrationTool struct{}
  19. func (u *migrationTool) IsMigrationNeeded() (bool, error) {
  20. majorVersion, minorVersion, patchVersion, err := version.DetectLegacyVersion()
  21. if err != nil {
  22. if err == version.ErrLegacyVersionNotFound {
  23. return false, nil
  24. }
  25. return false, err
  26. }
  27. if majorVersion > 0 {
  28. return false, nil
  29. }
  30. if minorVersion > 4 {
  31. return false, nil
  32. }
  33. if minorVersion == 4 && patchVersion != 2 {
  34. return false, nil
  35. }
  36. _logger.Info("Migration is needed for a CasaOS version 0.4.2 ")
  37. return true, nil
  38. }
  39. func (u *migrationTool) PreMigrate() error {
  40. return nil
  41. }
  42. func (u *migrationTool) Migrate() error {
  43. _logger.Info("Migration is started for a CasaOS version 0.4.2 ")
  44. command.OnlyExec("systemctl stop rclone.service")
  45. os.Remove("/usr/lib/systemd/system/rclone.service")
  46. command.OnlyExec("systemctl daemon-reload")
  47. return nil
  48. }
  49. func (u *migrationTool) PostMigrate() error {
  50. return nil
  51. }
  52. func NewMigrationDummy() interfaces.MigrationTool {
  53. return &migrationTool{}
  54. }