58 lines
2.0 KiB
Python
58 lines
2.0 KiB
Python
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!")
|