Desacoblar playlists de sessions i afegir slow jams
This commit is contained in:
57
scripts/05_migrate_playlists.py
Normal file
57
scripts/05_migrate_playlists.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from folkugat_web.dal.sql import get_connection
|
||||
from folkugat_web.dal.sql.playlists import write as playlists_w
|
||||
from folkugat_web.dal.sql.playlists.ddl import (create_playlist_entries_table,
|
||||
create_playlists_table)
|
||||
from folkugat_web.dal.sql.sessions import playlists as session_playlists
|
||||
from folkugat_web.dal.sql.sessions import query as sessions_q
|
||||
from folkugat_web.dal.sql.sessions.ddl import create_session_playlists_table
|
||||
from folkugat_web.model.playlists import PlaylistType
|
||||
|
||||
with get_connection() as con:
|
||||
cur = con.cursor()
|
||||
|
||||
drop_query = """DROP TABLE rehearse_data"""
|
||||
_ = cur.execute(drop_query)
|
||||
|
||||
alter_query = """ALTER TABLE playlists RENAME TO playlists_old"""
|
||||
_ = cur.execute(alter_query)
|
||||
|
||||
# Create new tables
|
||||
create_playlist_entries_table(con=con)
|
||||
create_playlists_table(con=con)
|
||||
create_session_playlists_table(con=con)
|
||||
|
||||
# Create new playlists
|
||||
sessions = sessions_q.get_sessions(con=con)
|
||||
for session in sessions:
|
||||
if session.id is None:
|
||||
raise ValueError("Session without id!")
|
||||
|
||||
setlist_id = playlists_w.create_playlist(con=con)
|
||||
session_playlists.insert_playlist(
|
||||
session_id=session.id,
|
||||
playlist_type=PlaylistType.SESSION_SETLIST,
|
||||
playlist_id=setlist_id,
|
||||
con=con,
|
||||
)
|
||||
|
||||
slowjam_id = playlists_w.create_playlist(con=con)
|
||||
session_playlists.insert_playlist(
|
||||
session_id=session.id,
|
||||
playlist_type=PlaylistType.SESSION_SLOWJAM,
|
||||
playlist_id=slowjam_id,
|
||||
con=con,
|
||||
)
|
||||
|
||||
# Migrate
|
||||
migrate_query = """
|
||||
INSERT INTO playlist_entries
|
||||
(id, playlist_id, set_id, tema_id)
|
||||
SELECT
|
||||
NULL, sp.playlist_id, pl_old.set_id, pl_old.tema_id
|
||||
FROM playlists_old pl_old JOIN session_playlists sp USING (session_id)
|
||||
WHERE sp.playlist_type = "session_setlist"
|
||||
"""
|
||||
_ = cur.execute(migrate_query)
|
||||
|
||||
print("DONE!")
|
||||
Reference in New Issue
Block a user