# HG changeset patch # User Marcin Kuzminski # Date 2019-01-19 21:34:39 # Node ID 1afbe4594de18606c11a17e736d42ede3fc5385f # Parent c3563bf3424f12b1ac48a2a22ce0384d7b33922c rc-upgrade-db: added option to force update a version. diff --git a/rhodecode/lib/db_manage.py b/rhodecode/lib/db_manage.py --- a/rhodecode/lib/db_manage.py +++ b/rhodecode/lib/db_manage.py @@ -156,8 +156,11 @@ class DbManage(object): 'rhodecode/lib/dbmigrate') db_uri = self.dburi + if version: + DbMigrateVersion.set_version(version) + try: - curr_version = version or api.db_version(db_uri, repository_path) + curr_version = api.db_version(db_uri, repository_path) msg = ('Found current database db_uri under version ' 'control with version {}'.format(curr_version)) diff --git a/rhodecode/lib/rc_commands/upgrade_db.py b/rhodecode/lib/rc_commands/upgrade_db.py --- a/rhodecode/lib/rc_commands/upgrade_db.py +++ b/rhodecode/lib/rc_commands/upgrade_db.py @@ -25,6 +25,7 @@ import pyramid.paster from rhodecode.lib.pyramid_utils import bootstrap from rhodecode.lib.db_manage import DbManage +from rhodecode.lib.utils2 import safe_int log = logging.getLogger(__name__) @@ -33,11 +34,13 @@ log = logging.getLogger(__name__) @click.argument('ini_path', type=click.Path(exists=True)) @click.option('--force-yes/--force-no', default=None, help="Force yes/no to every question") -def main(ini_path, force_yes): - return command(ini_path, force_yes) +@click.option('--force-version', default=None, + help="Force upgrade from version") +def main(ini_path, force_yes, force_version): + return command(ini_path, force_yes, force_version) -def command(ini_path, force_yes): +def command(ini_path, force_yes, force_version): pyramid.paster.setup_logging(ini_path) with bootstrap(ini_path, env={'RC_CMD_UPGRADE_DB': '1'}) as env: @@ -49,4 +52,4 @@ def command(ini_path, force_yes): dbmanage = DbManage( log_sql=True, dbconf=db_uri, root='.', tests=False, cli_args=options) - dbmanage.upgrade() + dbmanage.upgrade(version=safe_int(force_version))