From 647d2895a7287da06a4f83009b23d350220bb3db Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Fri, 8 May 2015 11:56:28 +0200 Subject: [PATCH] Make utf8 the default charset for mysql Newer versions of oslo_db added a sanity check to ensure that table's charsets are utf8. This patch makes this change explicit and re-enables the sanity check that was disabled in Ifffbdd50c38a1d25215faa6a966c2d2a63935711 Change-Id: Icbc41bd3964a6124d3e0d906cb85944fdc312844 Closes-bug: #1411489 --- glance/db/migration.py | 3 +-- glance/db/sqlalchemy/models.py | 2 +- glance/db/sqlalchemy/models_artifacts.py | 14 +++++++------- glance/db/sqlalchemy/models_metadef.py | 2 +- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/glance/db/migration.py b/glance/db/migration.py index 8f59c9addd..3709f0686d 100644 --- a/glance/db/migration.py +++ b/glance/db/migration.py @@ -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) diff --git a/glance/db/sqlalchemy/models.py b/glance/db/sqlalchemy/models.py index 5a8f7588dc..9afb603977 100644 --- a/glance/db/sqlalchemy/models.py +++ b/glance/db/sqlalchemy/models.py @@ -67,7 +67,7 @@ class JSONEncodedDict(TypeDecorator): class GlanceBase(models.ModelBase, models.TimestampMixin): """Base class for Glance Models.""" - __table_args__ = {'mysql_engine': 'InnoDB'} + __table_args__ = {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'} __table_initialized__ = False __protected_attributes__ = set([ "created_at", "updated_at", "deleted_at", "deleted"]) diff --git a/glance/db/sqlalchemy/models_artifacts.py b/glance/db/sqlalchemy/models_artifacts.py index 4f542cf457..f45530d48c 100644 --- a/glance/db/sqlalchemy/models_artifacts.py +++ b/glance/db/sqlalchemy/models_artifacts.py @@ -44,7 +44,7 @@ _LW = i18n._LW class ArtifactBase(models.ModelBase, models.TimestampMixin): """Base class for Artifact Models.""" - __table_args__ = {'mysql_engine': 'InnoDB'} + __table_args__ = {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'} __table_initialized__ = False __protected_attributes__ = set([ "created_at", "updated_at"]) @@ -102,7 +102,7 @@ class Artifact(BASE, ArtifactBase): Index('ix_artifact_state', 'state'), Index('ix_artifact_owner', 'owner'), Index('ix_artifact_visibility', 'visibility'), - {'mysql_engine': 'InnoDB'}) + {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'}) __protected_attributes__ = ArtifactBase.__protected_attributes__.union( set(['published_at', 'deleted_at'])) @@ -219,7 +219,7 @@ class ArtifactDependency(BASE, ArtifactBase): 'artifact_dest'), Index('ix_artifact_dependencies_direct_dependencies', 'artifact_source', 'is_direct'), - {'mysql_engine': 'InnoDB'}) + {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'}) id = Column(String(36), primary_key=True, nullable=False, default=lambda: str(uuid.uuid4())) @@ -248,7 +248,7 @@ class ArtifactTag(BASE, ArtifactBase): __table_args__ = (Index('ix_artifact_tags_artifact_id', 'artifact_id'), Index('ix_artifact_tags_artifact_id_tag_value', 'artifact_id', 'value'), - {'mysql_engine': 'InnoDB'},) + {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'},) id = Column(String(36), primary_key=True, nullable=False, default=lambda: str(uuid.uuid4())) @@ -265,7 +265,7 @@ class ArtifactProperty(BASE, ArtifactBase): __table_args__ = ( Index('ix_artifact_properties_artifact_id', 'artifact_id'), Index('ix_artifact_properties_name', 'name'), - {'mysql_engine': 'InnoDB'},) + {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'},) id = Column(String(36), primary_key=True, nullable=False, default=lambda: str(uuid.uuid4())) artifact_id = Column(String(36), ForeignKey('artifacts.id'), @@ -287,7 +287,7 @@ class ArtifactBlob(BASE, ArtifactBase): __table_args__ = ( Index('ix_artifact_blobs_artifact_id', 'artifact_id'), Index('ix_artifact_blobs_name', 'name'), - {'mysql_engine': 'InnoDB'},) + {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'},) id = Column(String(36), primary_key=True, nullable=False, default=lambda: str(uuid.uuid4())) artifact_id = Column(String(36), ForeignKey('artifacts.id'), @@ -306,7 +306,7 @@ class ArtifactBlobLocation(BASE, ArtifactBase): __tablename__ = 'artifact_blob_locations' __table_args__ = (Index('ix_artifact_blob_locations_blob_id', 'blob_id'), - {'mysql_engine': 'InnoDB'}) + {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'}) id = Column(String(36), primary_key=True, nullable=False, default=lambda: str(uuid.uuid4())) diff --git a/glance/db/sqlalchemy/models_metadef.py b/glance/db/sqlalchemy/models_metadef.py index 93ba33c905..caf2bf8941 100644 --- a/glance/db/sqlalchemy/models_metadef.py +++ b/glance/db/sqlalchemy/models_metadef.py @@ -48,7 +48,7 @@ BASE_DICT = declarative_base(cls=DictionaryBase) class GlanceMetadefBase(models.TimestampMixin): """Base class for Glance Metadef Models.""" - __table_args__ = {'mysql_engine': 'InnoDB'} + __table_args__ = {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'} __table_initialized__ = False __protected_attributes__ = set(["created_at", "updated_at"])