Fix existing migrations to create utf-8 tables for MySQL DB
oslo.db mandates all tables should be created with utf-8 charset when using MySQL DB. We added an option (deprecated) to skip this sanity check and it was subsequently removed in Liberty. This patch fixes existing migration scripts to create tables with utf-8 charset. Since oslo.db does a sanity check before running the migrations, it's safe to assume that only new tables created since the previous migration will be affected. Closes-bug: #1279000 Change-Id: Ia31dc9e5d4494d1b9633f916fa6e2704d33dffb0
This commit is contained in:
parent
5aa1fb1f38
commit
e5d10c3c1b
@ -62,5 +62,4 @@ def db_sync(version=None, init_version=0, engine=None):
|
||||
return get_backend().db_sync(engine=engine,
|
||||
abs_path=MIGRATE_REPO_PATH,
|
||||
version=version,
|
||||
init_version=init_version,
|
||||
sanity_check=False)
|
||||
init_version=init_version)
|
||||
|
@ -42,6 +42,7 @@ def define_images_table(meta):
|
||||
default=False,
|
||||
index=True),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
return images
|
||||
|
@ -60,6 +60,7 @@ def define_image_properties_table(meta):
|
||||
UniqueConstraint('image_id', 'key',
|
||||
**constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
|
@ -71,6 +71,7 @@ def get_image_members_table(meta):
|
||||
default=False,
|
||||
index=True),
|
||||
UniqueConstraint('image_id', 'member'),
|
||||
mysql_charset='utf8',
|
||||
mysql_engine='InnoDB',
|
||||
extend_existing=True)
|
||||
|
||||
|
@ -46,7 +46,8 @@ def define_image_tags_table(meta):
|
||||
glance_schema.Boolean(),
|
||||
nullable=False,
|
||||
default=False),
|
||||
mysql_engine='InnoDB')
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8')
|
||||
|
||||
schema.Index('ix_image_tags_image_id',
|
||||
image_tags.c.image_id)
|
||||
|
@ -50,6 +50,8 @@ def upgrade(migrate_engine):
|
||||
nullable=False,
|
||||
default=False,
|
||||
index=True),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
)
|
||||
|
||||
schema.create_tables([image_locations_table])
|
||||
|
@ -39,6 +39,7 @@ def define_tasks_table(meta):
|
||||
nullable=False,
|
||||
default=False),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
Index('ix_tasks_type', tasks.c.type)
|
||||
|
@ -37,7 +37,8 @@ def define_task_info_table(meta):
|
||||
Column('input', Text()),
|
||||
Column('result', Text()),
|
||||
Column('message', Text()),
|
||||
mysql_engine='InnoDB')
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8')
|
||||
|
||||
return task_info
|
||||
|
||||
|
@ -66,6 +66,7 @@ def define_metadef_namespaces_table(meta):
|
||||
Column('updated_at', DateTime()),
|
||||
UniqueConstraint('namespace', **_constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
@ -95,6 +96,7 @@ def define_metadef_objects_table(meta):
|
||||
UniqueConstraint('namespace_id', 'name',
|
||||
**_constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
@ -123,6 +125,7 @@ def define_metadef_properties_table(meta):
|
||||
Column('updated_at', DateTime()),
|
||||
UniqueConstraint('namespace_id', 'name', **_constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
@ -149,6 +152,7 @@ def define_metadef_resource_types_table(meta):
|
||||
Column('updated_at', DateTime()),
|
||||
UniqueConstraint('name', **_constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
@ -180,6 +184,7 @@ def define_metadef_namespace_resource_types_table(meta):
|
||||
UniqueConstraint('resource_type_id', 'namespace_id',
|
||||
**_constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
|
@ -33,6 +33,7 @@ def define_metadef_tags_table(meta):
|
||||
UniqueConstraint('namespace_id', 'name',
|
||||
**_constr_kwargs),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=False)
|
||||
|
||||
if meta.bind.name != 'ibm_db_sa':
|
||||
|
@ -44,6 +44,7 @@ def define_artifacts_table(meta):
|
||||
Column('deleted_at', DateTime()),
|
||||
Column('published_at', DateTime()),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
Index('ix_artifact_name_and_version', artifacts.c.name,
|
||||
@ -69,6 +70,7 @@ def define_artifact_tags_table(meta):
|
||||
Column('updated_at', DateTime(),
|
||||
nullable=False),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
Index('ix_artifact_tags_artifact_id', artifact_tags.c.artifact_id)
|
||||
@ -101,6 +103,7 @@ def define_artifact_dependencies_table(meta):
|
||||
Column('updated_at', DateTime(),
|
||||
nullable=False),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
|
||||
Index('ix_artifact_dependencies_source_id',
|
||||
@ -132,6 +135,7 @@ def define_artifact_blobs_table(meta):
|
||||
Column('updated_at', DateTime(),
|
||||
nullable=False),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
Index('ix_artifact_blobs_artifact_id',
|
||||
artifact_blobs.c.artifact_id)
|
||||
@ -162,6 +166,7 @@ def define_artifact_properties_table(meta):
|
||||
nullable=False),
|
||||
Column('position', Integer()),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
Index('ix_artifact_properties_artifact_id',
|
||||
artifact_properties.c.artifact_id)
|
||||
@ -187,6 +192,7 @@ def define_artifact_blob_locations_table(meta):
|
||||
Column('status', String(36),
|
||||
nullable=True),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8',
|
||||
extend_existing=True)
|
||||
Index('ix_artifact_blob_locations_blob_id',
|
||||
artifact_blob_locations.c.blob_id)
|
||||
|
@ -126,7 +126,8 @@ class MigrationsMixin(test_migrations.WalkVersionsMixin):
|
||||
sqlalchemy.Boolean(),
|
||||
nullable=False,
|
||||
default=False),
|
||||
mysql_engine='InnoDB')
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8')
|
||||
images_001.create()
|
||||
|
||||
def test_version_control_existing_db(self):
|
||||
|
Loading…
Reference in New Issue
Block a user