2022-01-11 08:36:11 +03:00
|
|
|
from selfprivacy_api.utils import ReadUserData
|
|
|
|
from selfprivacy_api.migrations.fix_nixos_config_branch import FixNixosConfigBranch
|
2022-01-14 09:24:33 +02:00
|
|
|
from selfprivacy_api.migrations.create_tokens_json import CreateTokensJson
|
2022-01-11 08:36:11 +03:00
|
|
|
|
2022-01-14 09:24:33 +02:00
|
|
|
migrations = [FixNixosConfigBranch(), CreateTokensJson()]
|
2022-01-11 08:41:25 +03:00
|
|
|
|
2022-01-11 08:36:11 +03: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", [])
|
|
|
|
|
2022-01-11 08:57:14 +03:00
|
|
|
if "DISABLE_ALL" in skipped_migrations:
|
|
|
|
return
|
|
|
|
|
2022-01-11 08:36:11 +03:00
|
|
|
for migration in migrations:
|
|
|
|
if migration.get_migration_name() not in skipped_migrations:
|
2022-01-11 08:54:57 +03:00
|
|
|
try:
|
|
|
|
if migration.is_migration_needed():
|
2022-01-11 08:52:15 +03:00
|
|
|
migration.migrate()
|
2022-01-11 08:54:57 +03:00
|
|
|
except Exception as e:
|
|
|
|
print(f"Error while migrating {migration.get_migration_name()}")
|
|
|
|
print(e)
|
|
|
|
print("Skipping this migration")
|