summaryrefslogtreecommitdiffhomepage
path: root/migrations/env.py
diff options
context:
space:
mode:
Diffstat (limited to 'migrations/env.py')
-rw-r--r--migrations/env.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/migrations/env.py b/migrations/env.py
index d706218a2..beddf9710 100644
--- a/migrations/env.py
+++ b/migrations/env.py
@@ -1,6 +1,7 @@
from flask import current_app
from alembic import context
+from sqlalchemy import text
import logging
@@ -95,8 +96,22 @@ def run_migrations_online():
)
with context.begin_transaction():
+ bind = context.get_bind()
+
+ if bind.engine.name == 'sqlite':
+ bind.execute(text("PRAGMA foreign_keys=OFF;"))
+ elif bind.engine.name == 'postgresql':
+ bind.execute(text("SET CONSTRAINTS ALL DEFERRED;"))
+
context.run_migrations()
+ if bind.engine.name == 'sqlite':
+ bind.execute(text("PRAGMA foreign_keys=ON;"))
+ elif bind.engine.name == 'postgresql':
+ bind.execute(text("SET CONSTRAINTS ALL IMMEDIATE;"))
+
+ bind.close()
+
if context.is_offline_mode():
run_migrations_offline()