]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Issue one SQL statement per execute() call
authorAngus Lees <gus@inodes.org>
Wed, 13 Aug 2014 01:59:18 +0000 (11:59 +1000)
committerAngus Lees <gus@inodes.org>
Wed, 13 Aug 2014 02:00:58 +0000 (12:00 +1000)
Some sqlalchemy drivers don't support multiple SQL statements in a
single execute() call.  The sqlalchemy author has confirmed that one
statement per execute() is the intended API.

Change-Id: I527780765371dcc9645a721d60ed9ac67ddde29f

cinder/db/sqlalchemy/migrate_repo/versions/001_cinder_init.py

index ab85a7c1ec5e7f13f25a9673d6fcdcf6f997d87b..5cbcbd5226d56da3bd82fb67d6bf94999880e8e2 100644 (file)
@@ -256,14 +256,15 @@ def upgrade(migrate_engine):
                   "volume_metadata",
                   "volume_type_extra_specs"]
 
-        sql = "SET foreign_key_checks = 0;"
+        migrate_engine.execute("SET foreign_key_checks = 0")
         for table in tables:
-            sql += "ALTER TABLE %s CONVERT TO CHARACTER SET utf8;" % table
-        sql += "SET foreign_key_checks = 1;"
-        sql += "ALTER DATABASE %s DEFAULT CHARACTER SET utf8;" \
-            % migrate_engine.url.database
-        sql += "ALTER TABLE %s Engine=InnoDB;" % table
-        migrate_engine.execute(sql)
+            migrate_engine.execute(
+                "ALTER TABLE %s CONVERT TO CHARACTER SET utf8" % table)
+        migrate_engine.execute("SET foreign_key_checks = 1")
+        migrate_engine.execute(
+            "ALTER DATABASE %s DEFAULT CHARACTER SET utf8" %
+            migrate_engine.url.database)
+        migrate_engine.execute("ALTER TABLE %s Engine=InnoDB" % table)
 
 
 def downgrade(migrate_engine):