From db0a7fe91d3eddc6d337028332fbd496bb000df2 Mon Sep 17 00:00:00 2001 From: Clint Byrum Date: Tue, 6 May 2014 10:48:36 -0700 Subject: [PATCH] Patch 033 migration to work w/ MySQL 5.6 With MySQL 5.6 setup to use UTF-8 for everything, the 033 migration will fail. This is because a VARCHAR(256) cannot be indexed in UTF-8 databases. In versions of MySQL before 5.6, this produced a warning and a truncated, less-useful index. In 5.6 it was changed to an error. We will reduce these columns further to 64 bytes in the model in a subsequent fix. For now, we will just create the table with 64 character columns on new systems, which will allow this migration to work properly on mysql-5.6. There is no danger of overflow, as 64 chars is what Keystone uses for them anyway. Change-Id: I27b9c61828301ba8c392b3d316f656641af753bc Closes-Bug: #1316646 --- .../sqlalchemy/migrate_repo/versions/033_software_config.py | 4 ++-- heat/db/sqlalchemy/models.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py b/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py index 593a62b03a..2e733799ec 100644 --- a/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py +++ b/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py @@ -33,7 +33,7 @@ def upgrade(migrate_engine): sqlalchemy.Column('group', sqlalchemy.String(255)), sqlalchemy.Column('config', LongText), sqlalchemy.Column('io', Json), - sqlalchemy.Column('tenant', sqlalchemy.String(256), + sqlalchemy.Column('tenant', sqlalchemy.String(64), nullable=False, index=True), mysql_engine='InnoDB', @@ -62,7 +62,7 @@ def upgrade(migrate_engine): sqlalchemy.Column('action', sqlalchemy.String(255)), sqlalchemy.Column('status', sqlalchemy.String(255)), sqlalchemy.Column('status_reason', sqlalchemy.String(255)), - sqlalchemy.Column('tenant', sqlalchemy.String(256), + sqlalchemy.Column('tenant', sqlalchemy.String(64), nullable=False, index=True), mysql_engine='InnoDB', diff --git a/heat/db/sqlalchemy/models.py b/heat/db/sqlalchemy/models.py index c5c3ef7122..70e94a47a4 100644 --- a/heat/db/sqlalchemy/models.py +++ b/heat/db/sqlalchemy/models.py @@ -296,7 +296,7 @@ class SoftwareConfig(BASE, HeatBase): group = sqlalchemy.Column('group', sqlalchemy.String(255)) config = sqlalchemy.Column('config', Json) tenant = sqlalchemy.Column( - 'tenant', sqlalchemy.String(256), nullable=False) + 'tenant', sqlalchemy.String(64), nullable=False) class SoftwareDeployment(BASE, HeatBase, StateAware): @@ -320,7 +320,7 @@ class SoftwareDeployment(BASE, HeatBase, StateAware): input_values = sqlalchemy.Column('input_values', Json) output_values = sqlalchemy.Column('output_values', Json) tenant = sqlalchemy.Column( - 'tenant', sqlalchemy.String(256), nullable=False) + 'tenant', sqlalchemy.String(64), nullable=False) stack_user_project_id = sqlalchemy.Column(sqlalchemy.String(64), nullable=True)