migration-sample.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. interfaces "github.com/IceWhaleTech/CasaOS-Common"
  14. "github.com/IceWhaleTech/CasaOS-Common/utils/version"
  15. )
  16. type migrationTool struct{}
  17. func (u *migrationTool) IsMigrationNeeded() (bool, error) {
  18. majorVersion, minorVersion, patchVersion, err := version.DetectLegacyVersion()
  19. if err != nil {
  20. if err == version.ErrLegacyVersionNotFound {
  21. return false, nil
  22. }
  23. return false, err
  24. }
  25. if majorVersion > 0 {
  26. return false, nil
  27. }
  28. if minorVersion > 3 {
  29. return false, nil
  30. }
  31. if minorVersion == 3 && patchVersion > 5 {
  32. return false, nil
  33. }
  34. _logger.Info("Migration is needed for a CasaOS version 0.3.5 and older...")
  35. return true, nil
  36. }
  37. func (u *migrationTool) PreMigrate() error {
  38. return nil
  39. }
  40. func (u *migrationTool) Migrate() error {
  41. return nil
  42. }
  43. func (u *migrationTool) PostMigrate() error {
  44. return nil
  45. }
  46. func NewMigrationToolFor_036() interfaces.MigrationTool {
  47. return &migrationTool{}
  48. }