def db_goto_version(sql_connection, version): """ Jump to a specific database version without performing migrations. :param sql_connection: sqlalchemy connection string :param version: version to jump to """ # pylint: disable=W0613 @versioning_api.with_engine def set_db_version(url, repository, old_v, new_v, **opts): engine = opts.pop('engine') schema = get_schema(engine, repo_path) schema.update_repository_table(old_v, new_v) return True repo_path = get_migrate_repo_path() new_version = int(version) try: old_version = versioning_api.db_version(sql_connection, repo_path) if new_version != old_version: return set_db_version(sql_connection, repo_path, old_version, new_version) except versioning_exceptions.DatabaseNotControlledError: msg = (_("database '%(sql_connection)s' is not under " "migration control") % locals()) raise fault.DatabaseMigrationError(msg)
def version_control(sql_connection): """ Place a database under migration control :param sql_connection: sqlalchemy connection string """ try: _version_control(sql_connection) except versioning_exceptions.DatabaseAlreadyControlledError: msg = (_("database '%(sql_connection)s' is already under migration " "control") % locals()) raise fault.DatabaseMigrationError(msg)
def version_control(options): """ Place a database under migration control :param options: options dict """ sql_connection = options['sql_connection'] try: _version_control(options) except versioning_exceptions.DatabaseAlreadyControlledError: msg = (_("database '%(sql_connection)s' is already under migration " "control") % locals()) raise fault.DatabaseMigrationError(msg)
def db_version(sql_connection): """ Return the database's current migration number :param sql_connection: sqlalchemy connection string :retval version number """ repo_path = get_migrate_repo_path() try: return versioning_api.db_version(sql_connection, repo_path) except versioning_exceptions.DatabaseNotControlledError: msg = (_("database '%(sql_connection)s' is not under " "migration control") % locals()) raise fault.DatabaseMigrationError(msg)