swingmusic/app/migrations/__init__.py
mungai-njoroge d9688455fb default migrations value to -1
+ tiny fixes
2023-07-30 15:06:56 +03:00

51 lines
1.2 KiB
Python

"""
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].
PS: Fuck that! Do what you want.
"""
from app.db.sqlite.migrations import MigrationManager
from app.logger import log
from app.migrations import v1_3_0
migrations = [
[
# v1.3.0
v1_3_0.RemovePlaylistArtistHashes,
v1_3_0.AddSettingsToPlaylistTable,
v1_3_0.AddLastUpdatedToTrackTable,
v1_3_0.MovePlaylistsAndFavoritesTo10BitHashes,
v1_3_0.RemoveAllTracks,
]
]
def apply_migrations():
"""
Applies the latest database migrations.
"""
version = MigrationManager.get_version()
# is clean install
if version == -1:
MigrationManager.set_version(len(migrations))
return
if version != len(migrations):
# run migrations after the previous migration version
for migration in migrations[(version - 1) :]:
for m in migration:
log.info("Running new migration: %s", m.name)
m.migrate()
# bump migration version
MigrationManager.set_version(len(migrations))