Files
folkugat-web/folkugat_web/dal/sql/playlists/ddl.py
2026-02-16 23:03:01 +01:00

37 lines
1.0 KiB
Python

from folkugat_web.dal.sql import Connection, get_connection
def create_db(con: Connection | None = None):
with get_connection(con) as con:
create_playlists_table(con)
create_playlist_entries_table(con)
def create_playlists_table(con: Connection):
query = """
CREATE TABLE IF NOT EXISTS playlists (
id INTEGER PRIMARY KEY,
name TEXT,
hidden INTEGER NOT NULL DEFAULT 1
)
"""
cur = con.cursor()
_ = cur.execute(query)
def create_playlist_entries_table(con: Connection):
query = """
CREATE TABLE IF NOT EXISTS playlist_entries (
id INTEGER PRIMARY KEY,
playlist_id INTEGER NOT NULL,
set_id INTEGER NOT NULL,
tema_id INTEGER,
score_id INTEGER,
FOREIGN KEY (playlist_id) REFERENCES playlists(id) ON DELETE CASCADE,
FOREIGN KEY (tema_id) REFERENCES temes(id) ON DELETE CASCADE,
FOREIGN KEY (score_id) REFERENCES tema_scores(id) ON DELETE SET NULL
)
"""
cur = con.cursor()
_ = cur.execute(query)