From 0ff02860bc2c223bedee85b81f57ff74cfd47e51 Mon Sep 17 00:00:00 2001 From: Luke Mino-Altherr Date: Fri, 6 Feb 2026 19:32:06 -0800 Subject: [PATCH] Enable SQLite foreign key enforcement Amp-Thread-ID: https://ampcode.com/threads/T-019c3626-c6ad-7139-a570-62da4e656a1a Co-authored-by: Amp --- app/database/db.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/database/db.py b/app/database/db.py index 1de8b80ed..2a79f7df0 100644 --- a/app/database/db.py +++ b/app/database/db.py @@ -14,7 +14,7 @@ try: from alembic.config import Config from alembic.runtime.migration import MigrationContext from alembic.script import ScriptDirectory - from sqlalchemy import create_engine + from sqlalchemy import create_engine, event from sqlalchemy.orm import sessionmaker _DB_AVAILABLE = True @@ -75,6 +75,13 @@ def init_db(): # Check if we need to upgrade engine = create_engine(db_url) + + # Enable foreign key enforcement for SQLite + @event.listens_for(engine, "connect") + def set_sqlite_pragma(dbapi_connection, connection_record): + cursor = dbapi_connection.cursor() + cursor.execute("PRAGMA foreign_keys=ON") + cursor.close() conn = engine.connect() context = MigrationContext.configure(conn)