import common from autotest_lib.database import db_utils, migrate TKO_MIGRATION_NAME = '031_rename_tko_tables' migrations_module = __import__('autotest_lib.tko.migrations', globals(), locals(), [TKO_MIGRATION_NAME]) tko_migration = getattr(migrations_module, TKO_MIGRATION_NAME) TABLE_NAMES = tko_migration.RENAMES_UP.values() def migrate_up(manager): tko_manager = migrate.get_migration_manager(db_name='TKO', debug=False, force=False) if tko_manager.get_db_version() < 31: raise Exception('You must update the TKO database to at least version ' '31 before applying AUTOTEST_WEB migration 46') if manager.simulate: tko_manager.initialize_and_fill_test_db() if not manager.force: response = raw_input( 'This migration will merge the autotest_web and tko databases. ' 'Following the migration, the tko database will be dropped. ' 'Any user-added tables in tko will NOT be migrated. This ' 'migration is NOT reversible. Are you sure you want to ' 'continue? (yes/no) ') if response != 'yes': raise Exception('User has chosen to abort migration') db_utils.move_tables(manager, tko_manager, TABLE_NAMES) db_utils.drop_database(tko_manager) manager.execute_script(tko_migration.RECREATE_VIEWS_UP) def migrate_down(manager): raise Exception('Migration 46 is not reversible!')