##// END OF EJS Templates
core: setuptools, switched from deprecated setup.py to pyproject.toml
core: setuptools, switched from deprecated setup.py to pyproject.toml

File last commit:

r5096:a0018795 default
r5572:b7348fbb default
Show More
upgrade_db.py
54 lines | 2.0 KiB | text/x-python | PythonLexer
copyrights: updated for 2023
r5088 # Copyright (C) 2016-2023 RhodeCode GmbH
core: added two new commands rcsetup-app and rcupgrade-db that will...
r2007 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
core: ported upgrade-db cli command to pyramid.
r2339 import logging
core: added two new commands rcsetup-app and rcupgrade-db that will...
r2007 import click
core: ported upgrade-db cli command to pyramid.
r2339 import pyramid.paster
core: added two new commands rcsetup-app and rcupgrade-db that will...
r2007
core: use common bootstrap for pyramid app
r2189 from rhodecode.lib.pyramid_utils import bootstrap
core: ported upgrade-db cli command to pyramid.
r2339 from rhodecode.lib.db_manage import DbManage
rc-commands: python3 port
r5078 from rhodecode.lib.utils2 import safe_int, get_encryption_key
core: ported upgrade-db cli command to pyramid.
r2339
log = logging.getLogger(__name__)
core: added two new commands rcsetup-app and rcupgrade-db that will...
r2007
@click.command()
@click.argument('ini_path', type=click.Path(exists=True))
core: ported upgrade-db cli command to pyramid.
r2339 @click.option('--force-yes/--force-no', default=None,
help="Force yes/no to every question")
rc-upgrade-db: added option to force update a version.
r3406 @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)
core: ported upgrade-db cli command to pyramid.
r2339
rc-upgrade-db: added option to force update a version.
r3406 def command(ini_path, force_yes, force_version):
core: added two new commands rcsetup-app and rcupgrade-db that will...
r2007 pyramid.paster.setup_logging(ini_path)
bootstrap: allow setting certain env flags for usage in CLI scripts....
r2651 with bootstrap(ini_path, env={'RC_CMD_UPGRADE_DB': '1'}) as env:
core: ported upgrade-db cli command to pyramid.
r2339 config = env['registry'].settings
db_uri = config['sqlalchemy.db1.url']
rc-commands: python3 port
r5078 enc_key = get_encryption_key(config)
core: ported upgrade-db cli command to pyramid.
r2339 options = {}
if force_yes is not None:
options['force_ask'] = force_yes
dbmanage = DbManage(
log_sql=True, dbconf=db_uri, root='.', tests=False,
rc-commands: python3 port
r5078 cli_args=options, enc_key=enc_key)
rc-upgrade-db: added option to force update a version.
r3406 dbmanage.upgrade(version=safe_int(force_version))