Merge pull request #2207 from dlage/migrator-pr

Migrator - add a command line option to ensure that all tables are migrated
This commit is contained in:
mdipierro
2019-05-25 00:20:21 -07:00
committed by GitHub
4 changed files with 66 additions and 2 deletions
+24 -1
View File
@@ -216,7 +216,8 @@ def run(
bpython=False,
python_code=None,
cron_job=False,
scheduler_job=False):
scheduler_job=False,
force_migrate=False):
"""
Start interactive shell or run Python script (startfile) in web2py
controller environment. appname is formatted like:
@@ -246,6 +247,19 @@ def run(
os.mkdir(adir)
fileutils.create_app(adir)
if force_migrate:
import_models = True
from gluon.dal import DAL
orig_init = DAL.__init__
def custom_init(*args, **kwargs):
kwargs['migrate_enabled'] = True
kwargs['migrate'] = True
logger.info('Forcing migrate_enabled=True')
orig_init(*args, **kwargs)
DAL.__init__ = custom_init
if c:
import_models = True
extra_request = {}
@@ -298,6 +312,15 @@ def run(
print(traceback.format_exc())
if import_models:
BaseAdapter.close_all_instances('rollback')
elif force_migrate:
try:
execfile("scripts/migrator.py", _env)
if import_models:
BaseAdapter.close_all_instances('commit')
except:
print(traceback.format_exc())
if import_models:
BaseAdapter.close_all_instances('rollback')
else:
if not plain:
if bpython: