From 4fa4c497512e4b4e311083d64ec8536d0230fe28 Mon Sep 17 00:00:00 2001 From: jonathan vanasco Date: Wed, 8 Sep 2021 12:50:10 -0400 Subject: [PATCH] Fixes: #5289 Clarify Foreign Key support on SQLite must be enabled before `MetaData.create_all` Change-Id: Ic41b86f736be21dd6fc890a915a2ffd572df73a4 --- lib/sqlalchemy/dialects/sqlite/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index dc5ebc3f0c..08dfd56b1e 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -266,7 +266,8 @@ Constraint checking on SQLite has three prerequisites: * The SQLite library must be compiled *without* the SQLITE_OMIT_FOREIGN_KEY or SQLITE_OMIT_TRIGGER symbols enabled. * The ``PRAGMA foreign_keys = ON`` statement must be emitted on all - connections before use. + connections before use -- including the initial call to + :meth:`sqlalchemy.schema.MetaData.create_all`. SQLAlchemy allows for the ``PRAGMA`` statement to be emitted automatically for new connections through the usage of events:: -- 2.47.2