summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-04-30 21:56:26 +0000
committerGerrit Code Review <review@openstack.org>2012-04-30 21:56:26 +0000
commit7b16b366963c2b45c2271a985815a3eeb4ebe33c (patch)
tree5e69e20d4ef1ed85610bd8295a4b27b80dd19b98 /nova
parent9c1e5e5d8f766b08f407c71afb1ab819f43d5da4 (diff)
parent5f2eab36345b2e2ac5ca72843c7dc69d35c106da (diff)
Merge "Fix InnoDB migration bug in migrate script 86."
Diffstat (limited to 'nova')
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/086_set_engine_mysql_innodb.py38
1 files changed, 15 insertions, 23 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/086_set_engine_mysql_innodb.py b/nova/db/sqlalchemy/migrate_repo/versions/086_set_engine_mysql_innodb.py
index f1bdf7c96..da985b956 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/086_set_engine_mysql_innodb.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/086_set_engine_mysql_innodb.py
@@ -20,32 +20,24 @@ from sqlalchemy import MetaData
def upgrade(migrate_engine):
# Upgrade operations go here. Don't create your own engine;
# bind migrate_engine to your metadata
+
+ tables = ["agent_builds", "aggregate_hosts", "aggregate_metadata",
+ "aggregates", "block_device_mapping", "bw_usage_cache",
+ "dns_domains", "instance_faults", "instance_type_extra_specs",
+ "provider_fw_rules", "quota_classes", "s3_images",
+ "sm_backend_config", "sm_flavors", "sm_volume",
+ "virtual_storage_arrays", "volume_metadata",
+ "volume_type_extra_specs", "volume_types"]
+
meta = MetaData()
meta.bind = migrate_engine
if migrate_engine.name == "mysql":
- migrate_engine.execute("ALTER TABLE agent_builds Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE aggregate_hosts Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE aggregate_metadata Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE aggregates Engine=InnoDB")
- migrate_engine.execute(
- "ALTER TABLE block_device_mapping Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE bw_usage_cache Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE dns_domains Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE instance_faults Engine=InnoDB")
- migrate_engine.execute(
- "ALTER TABLE instance_type_extra_specs Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE provider_fw_rules Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE quota_classes Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE s3_images Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE sm_backend_config Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE sm_flavors Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE sm_volume Engine=InnoDB")
- migrate_engine.execute(
- "ALTER TABLE virtual_storage_arrays Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE volume_metadata Engine=InnoDB")
- migrate_engine.execute(
- "ALTER TABLE volume_type_extra_specs Engine=InnoDB")
- migrate_engine.execute("ALTER TABLE volume_types Engine=InnoDB")
+ d = migrate_engine.execute("SHOW TABLE STATUS WHERE Engine!='InnoDB';")
+ for row in d.fetchall():
+ table_name = row[0]
+ if table_name in tables:
+ migrate_engine.execute("ALTER TABLE %s Engine=InnoDB" %
+ table_name)
def downgrade(migrate_engine):