Add migration for race_id column on existing passages table
Build & Deploy / build-and-deploy (push) Successful in 38s

CREATE TABLE IF NOT EXISTS does not add new columns to existing tables.
Use ALTER TABLE to migrate databases that predate this change.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-21 09:48:26 +01:00
parent 5393e85a74
commit 99565daafb
+14 -1
View File
@@ -51,17 +51,30 @@ async def init_db(db: aiosqlite.Connection) -> None:
);
CREATE INDEX IF NOT EXISTS idx_passages_profile ON passages(profile_id);
CREATE INDEX IF NOT EXISTS idx_passages_race ON passages(race_id);
CREATE INDEX IF NOT EXISTS idx_passages_station ON passages(station);
CREATE INDEX IF NOT EXISTS idx_passages_needs_review ON passages(needs_review);
CREATE INDEX IF NOT EXISTS idx_passage_images_passage ON passage_images(passage_id);
""")
await db.commit()
# Migrer eksisterende tabeller
await _migrate(db)
from race_db import init_race_tables
await init_race_tables(db)
async def _migrate(db: aiosqlite.Connection) -> None:
"""Legg til nye kolonner i eksisterende tabeller ved oppgradering."""
async with db.execute("PRAGMA table_info(passages)") as cur:
columns = {row[1] for row in await cur.fetchall()}
if "race_id" not in columns:
await db.execute("ALTER TABLE passages ADD COLUMN race_id TEXT REFERENCES races(race_id)")
await db.execute("CREATE INDEX IF NOT EXISTS idx_passages_race ON passages(race_id)")
await db.commit()
async def get_db() -> aiosqlite.Connection:
db = await aiosqlite.connect(DB_PATH)
db.row_factory = aiosqlite.Row