diff --git a/app/migrations/__init__.py b/app/migrations/__init__.py index 6048a197..cf470dde 100644 --- a/app/migrations/__init__.py +++ b/app/migrations/__init__.py @@ -1,3 +1,20 @@ """ -Migrations module +Migrations module. + +Reads and applies the latest database migrations. """ +from .main import main_db_migrations +from .userdata import userdata_db_migrations + + +def apply_migrations(): + userdb_version = 0 + maindb_version = 0 + + for migration in main_db_migrations: + if migration.version > maindb_version: + migration.migrate() + + for migration in userdata_db_migrations: + if migration.version > userdb_version: + migration.migrate() diff --git a/app/migrations/main/__init__.py b/app/migrations/main/__init__.py new file mode 100644 index 00000000..2bbd1c0b --- /dev/null +++ b/app/migrations/main/__init__.py @@ -0,0 +1,4 @@ +from .sample import SampleMigrationModel + +main_db_migrations = [SampleMigrationModel] + diff --git a/app/migrations/main/sample.py b/app/migrations/main/sample.py new file mode 100644 index 00000000..ec24e3fa --- /dev/null +++ b/app/migrations/main/sample.py @@ -0,0 +1,6 @@ +class SampleMigrationModel: + version = 1 + + @staticmethod + def migrate(): + print("executing sample main db migration") diff --git a/app/migrations/userdata/__init__.py b/app/migrations/userdata/__init__.py new file mode 100644 index 00000000..980d343c --- /dev/null +++ b/app/migrations/userdata/__init__.py @@ -0,0 +1,4 @@ +from .sample import SampleMigrationModel + +userdata_db_migrations = [SampleMigrationModel] + diff --git a/app/migrations/userdata/sample.py b/app/migrations/userdata/sample.py new file mode 100644 index 00000000..5205a662 --- /dev/null +++ b/app/migrations/userdata/sample.py @@ -0,0 +1,6 @@ +class SampleMigrationModel: + version = 1 + + @staticmethod + def migrate(): + print("executing sample userdata db migration") diff --git a/app/setup/__init__.py b/app/setup/__init__.py index b31a87a6..f0c6fad2 100644 --- a/app/setup/__init__.py +++ b/app/setup/__init__.py @@ -10,13 +10,13 @@ from app.db.sqlite import create_connection, create_tables, queries from app.db.store import Store from app.settings import APP_DB_PATH, USERDATA_DB_PATH from app.utils import get_home_res_path +from app.migrations import apply_migrations config = ConfigParser() config_path = get_home_res_path("pyinstaller.config.ini") config.read(config_path) - try: IS_BUILD = config["DEFAULT"]["BUILD"] == "True" except KeyError: @@ -112,6 +112,8 @@ def setup_sqlite(): app_db_conn.close() playlist_db_conn.close() + apply_migrations() + Store.load_all_tracks() Store.process_folders() Store.load_albums()