selfprivacy-rest-api/selfprivacy_api/migrations/__init__.py

33 lines
1.1 KiB
Python
Raw Normal View History

from selfprivacy_api.utils import ReadUserData
from selfprivacy_api.migrations.fix_nixos_config_branch import FixNixosConfigBranch
2022-01-14 07:24:33 +00:00
from selfprivacy_api.migrations.create_tokens_json import CreateTokensJson
2022-01-14 07:24:33 +00:00
migrations = [FixNixosConfigBranch(), CreateTokensJson()]
2022-01-11 05:41:25 +00:00
def run_migrations():
"""
Go over all migrations. If they are not skipped in userdata file, run them
if the migration needed.
"""
with ReadUserData() as data:
if "api" not in data:
skipped_migrations = []
elif "skippedMigrations" not in data["api"]:
skipped_migrations = []
else:
skipped_migrations = data["api"].get("skippedMigrations", [])
if "DISABLE_ALL" in skipped_migrations:
return
for migration in migrations:
if migration.get_migration_name() not in skipped_migrations:
try:
if migration.is_migration_needed():
2022-01-11 05:52:15 +00:00
migration.migrate()
except Exception as e:
print(f"Error while migrating {migration.get_migration_name()}")
print(e)
print("Skipping this migration")