mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-07 03:35:35 +00:00

+ delete older migrations ... oops + change migratrions from "migrations" to "dbmigrations" + restructure migrations, order them based on release version + add a utils/decorators.py file with a coroutine decorator
46 lines
1.1 KiB
Python
46 lines
1.1 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()
|
|
|
|
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()
|
|
|
|
# update migration version
|
|
MigrationManager.set_version(len(migrations))
|