Python Materials For Beginners
455 subscribers
39 photos
1 video
9 files
151 links
Download Telegram
🔷 Використання SQLite разом з SqlAlchemy

⚠️ Цікавий нюанс: SQLite за замовчуванням не перевіряє зовнішні ключі.
У багатьох СУБД (PostgreSQL, MySQL) зовнішні ключі завжди перевіряються.

🔧 У SQLite за це відповідає прапорець foreign_keys.
За замовчуванням він OFF, і якщо його не виставити в ON, можна отримати неузгоджені дані у зв’язаних таблицях, і довго дивуватись чому так.

👉 Виставити цей прапорець можна таким чином:

async with engine.begin() as connection:
await connection.execute("PRAGMA foreign_keys=ON")


Або одразу оголосити обробник події:

from sqlalchemy import event
from sqlalchemy.engine import Engine

@event.listens_for(Engine, "connect")
def set_sqlite_pragma(dbapi_connection, _):
cursor = dbapi_connection.cursor()
cursor.execute("PRAGMA foreign_keys=ON")
cursor.close()


✅ Так Ви уникнете "тихих" проблем з цілісністю даних.


#sqlite #sqlalchemy
👍2