1+ from contextlib import contextmanager
2+ import os
13import random
4+ import re
25import sys
36import time
4- import re
5- import os
6- from contextlib import contextmanager
77from uuid import uuid4
88
9- import logbook
10-
119import click
12-
10+ import logbook
1311
1412_DATABASE_URI_RE = re .compile (r"(?P<driver>(?P<db_type>sqlite|postgresql)(\+.*)?):\/\/(?P<host>[^/]*)\/(?P<db>.+)" )
1513
@@ -24,14 +22,15 @@ def _create_sqlite(path):
2422
2523def _create_postgres (match ):
2624 import sqlalchemy
25+
2726 from flask_app .models import db
2827
2928 uri = match .group (0 )
3029 db_name = match .group ('db' )
3130 try :
32- sqlalchemy .create_engine (uri ).connect ()
31+ sqlalchemy .create_engine (uri , server_sider_cursors = True ).connect ()
3332 except sqlalchemy .exc .OperationalError :
34- engine = sqlalchemy .create_engine ('{}://{}/postgres' .format (match .group ('driver' ), match .group ('host' )))
33+ engine = sqlalchemy .create_engine ('{}://{}/postgres' .format (match .group ('driver' ), match .group ('host' )), server_sider_cursors = True )
3534 conn = engine .connect ()
3635 conn .execute ("commit" )
3736 conn .execute ("create database {} with encoding = 'UTF8'" .format (db_name ))
@@ -77,7 +76,7 @@ def wait(num_retries=60, retry_sleep_seconds=1):
7776 if retry > 0 :
7877 time .sleep (retry_sleep_seconds )
7978 try :
80- sqlalchemy .create_engine (uri ).connect ()
79+ sqlalchemy .create_engine (uri , server_sider_cursors = True ).connect ()
8180 except sqlalchemy .exc .OperationalError as e :
8281 if 'does not exist' in str (e ):
8382 break
@@ -130,9 +129,10 @@ def downgrade():
130129
131130@contextmanager
132131def _migrate_context (app = None ):
132+ import flask_migrate
133+
133134 from flask_app .app import create_app
134135 from flask_app .models import db
135- import flask_migrate
136136 if app is None :
137137 app = create_app ()
138138
0 commit comments