def version_control(options, repo_path=None): """Place a database under migration control. :param options: options dict """ sql_connection = options['database']['connection'] try: _version_control(options) except versioning_exceptions.DatabaseAlreadyControlledError: msg = ("database '%(sql_connection)s' is already under migration " "control" % {'sql_connection': sql_connection}) raise exception.DatabaseMigrationError(msg)
def db_version(options, repo_path=None): """Return the database's current migration number. :param options: options dict :retval version number """ repo_path = get_migrate_repo_path(repo_path) sql_connection = options['database']['connection'] try: return versioning_api.db_version(sql_connection, repo_path) except versioning_exceptions.DatabaseNotControlledError: msg = ("database '%(sql_connection)s' is not under migration control" % {'sql_connection': sql_connection}) raise exception.DatabaseMigrationError(msg)