feat: add migration to move old files to xdg directory

+ add db column for migration version
+ handle pre-init migrations
+ handle post-init migration
This commit is contained in:
geoffrey45
2023-02-12 03:22:21 +03:00
parent 97e29c3254
commit b77b1747f1
10 changed files with 215 additions and 19 deletions
+26 -2
View File
@@ -2,19 +2,43 @@
Migrations module.
Reads and applies the latest database migrations.
PLEASE NOTE: OLDER MIGRATIONS CAN NEVER BE DELETED.
ONLY MODIFY OLD MIGRATIONS FOR BUG FIXES OR ENHANCEMENTS ONLY
[TRY NOT TO MODIFY BEHAVIOR, UNLESS YOU KNOW WHAT YOU'RE DOING].
"""
from app.db.sqlite.migrations import MigrationManager
from app.logger import log
from .main import main_db_migrations
from .userdata import userdata_db_migrations
def apply_migrations():
userdb_version = 0
maindb_version = 0
"""
Applies the latest database migrations.
"""
userdb_version = MigrationManager.get_userdatadb_postinit_version()
maindb_version = MigrationManager.get_maindb_postinit_version()
for migration in main_db_migrations:
if migration.version > maindb_version:
log.info("Running new MAIN-DB post-init migration: %s", migration.name)
migration.migrate()
for migration in userdata_db_migrations:
if migration.version > userdb_version:
log.info("Running new USERDATA-DB post-init migration: %s", migration.name)
migration.migrate()
def set_postinit_migration_versions():
"""
Sets the post-init migration versions.
"""
# TODO: Don't forget to remove the zeros below when you add a valid migration 👇.
MigrationManager.set_maindb_postinit_version(0)
MigrationManager.set_userdatadb_postinit_version(0)