From 8f1c6f64f4646603fa70caf0658dde90e93f5964 Mon Sep 17 00:00:00 2001 From: Graham Hayes Date: Fri, 5 Jan 2018 14:03:53 +0000 Subject: [PATCH] PyMySQL 0.8.0 compat fix In PyMySQL the "MULTI_STATEMENT" flag has been disabled by default. (see PyMySQL/PyMySQL#590 ) Migration 98 had a single string with multiple statements ran in a single execution. Moving this to multiple executions of the same statements allows the migration to succeed with the new behaviour. Caused-By: PyMySQL/PyMySQL@c0aa3179406571592d3beb9d5a35badc4047cb79 Change-Id: I5f6d92f695c4c5830b8595b0cecbbafb426470a1 --- .../versions/098_fix_service_charset.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/designate/storage/impl_sqlalchemy/migrate_repo/versions/098_fix_service_charset.py b/designate/storage/impl_sqlalchemy/migrate_repo/versions/098_fix_service_charset.py index c5bff9635..14f47c2df 100644 --- a/designate/storage/impl_sqlalchemy/migrate_repo/versions/098_fix_service_charset.py +++ b/designate/storage/impl_sqlalchemy/migrate_repo/versions/098_fix_service_charset.py @@ -25,9 +25,10 @@ def upgrade(migrate_engine): if migrate_engine.name != "mysql": return - sql = """SET foreign_key_checks = 0; - ALTER TABLE service_statuses CONVERT TO CHARACTER SET utf8; - SET foreign_key_checks = 1; - ALTER DATABASE %s DEFAULT CHARACTER SET utf8; - """ % migrate_engine.url.database - migrate_engine.execute(sql) + migrate_engine.execute("SET foreign_key_checks = 0;") + migrate_engine.execute( + "ALTER TABLE service_statuses CONVERT TO CHARACTER SET utf8;") + migrate_engine.execute("SET foreign_key_checks = 1;") + migrate_engine.execute( + "ALTER DATABASE %s DEFAULT CHARACTER SET utf8;" + % migrate_engine.url.database)