migrate.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import django
  2. import sys
  3. import os
  4. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  5. sys.path.append(BASE_DIR)
  6. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "spug.settings")
  7. django.setup()
  8. from django.conf import settings
  9. import subprocess
  10. import shutil
  11. import sys
  12. import os
  13. import re
  14. class Version:
  15. def __init__(self, version):
  16. self.version = re.sub('[^0-9.]', '', version).split('.')
  17. def __gt__(self, other):
  18. if not isinstance(other, Version):
  19. raise TypeError('required type Version')
  20. for v1, v2 in zip(self.version, other.version):
  21. if int(v1) == int(v2):
  22. continue
  23. elif int(v1) > int(v2):
  24. return True
  25. else:
  26. return False
  27. return False
  28. if __name__ == '__main__':
  29. old_version = Version(sys.argv[1])
  30. now_version = Version(settings.SPUG_VERSION)
  31. if old_version < Version('v3.0.2'):
  32. old_path = os.path.join(settings.BASE_DIR, 'repos')
  33. new_path = os.path.join(settings.REPOS_DIR)
  34. if not os.path.exists(new_path):
  35. print('执行 v3.0.1-beta.8 repos目录迁移')
  36. shutil.move(old_path, new_path)
  37. task = subprocess.Popen(f'cd {settings.BASE_DIR} && git checkout -- repos', shell=True)
  38. if task.wait() != 0:
  39. print('repos目录迁移失败,请联系官方人员')