Always default to InnoDB for MySQL

OpenStack CI uses MyISAM by default, which does not even support
foreign keys. This change essentially mirrors what ironic is doing.

Also sets the default charset to UTF-8.

Closes-Bug: #1506160
Change-Id: I7caf0a2122f98c59f121f003ac092ecb0ce123c4
(cherry picked from commit fbfdf5ee69)
This commit is contained in:
Dmitry Tantsur 2015-10-15 13:13:50 +02:00 committed by Dmitry Tantsur
parent 2c64da2bee
commit 95db43cf5f
3 changed files with 23 additions and 6 deletions

View File

@ -28,7 +28,12 @@ from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import orm
Base = declarative_base(cls=models.ModelBase)
class ModelBase(models.ModelBase):
__table_args__ = {'mysql_engine': "InnoDB",
'mysql_charset': "utf8"}
Base = declarative_base(cls=ModelBase)
CONF = cfg.CONF
_FACADE = None

View File

@ -38,14 +38,18 @@ def upgrade():
sa.Column('uuid', sa.String(36), primary_key=True),
sa.Column('started_at', sa.Float, nullable=True),
sa.Column('finished_at', sa.Float, nullable=True),
sa.Column('error', sa.Text, nullable=True)
sa.Column('error', sa.Text, nullable=True),
mysql_ENGINE='InnoDB',
mysql_DEFAULT_CHARSET='UTF8'
)
op.create_table(
'attributes',
sa.Column('name', sa.String(255), primary_key=True),
sa.Column('value', sa.String(255), primary_key=True),
sa.Column('uuid', sa.String(36), sa.ForeignKey('nodes.uuid'))
sa.Column('uuid', sa.String(36), sa.ForeignKey('nodes.uuid')),
mysql_ENGINE='InnoDB',
mysql_DEFAULT_CHARSET='UTF8'
)
op.create_table(
@ -53,7 +57,9 @@ def upgrade():
sa.Column('uuid', sa.String(36), sa.ForeignKey('nodes.uuid'),
primary_key=True),
sa.Column('name', sa.String(255), primary_key=True),
sa.Column('value', sa.Text)
sa.Column('value', sa.Text),
mysql_ENGINE='InnoDB',
mysql_DEFAULT_CHARSET='UTF8'
)

View File

@ -37,6 +37,8 @@ def upgrade():
sa.Column('created_at', sa.DateTime, nullable=False),
sa.Column('description', sa.Text),
sa.Column('disabled', sa.Boolean, default=False),
mysql_ENGINE='InnoDB',
mysql_DEFAULT_CHARSET='UTF8'
)
op.create_table(
@ -46,7 +48,9 @@ def upgrade():
sa.Column('op', sa.String(255), nullable=False),
sa.Column('multiple', sa.String(255), nullable=False),
sa.Column('field', sa.Text),
sa.Column('params', types.JsonEncodedDict)
sa.Column('params', types.JsonEncodedDict),
mysql_ENGINE='InnoDB',
mysql_DEFAULT_CHARSET='UTF8'
)
op.create_table(
@ -54,7 +58,9 @@ def upgrade():
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('rule', sa.String(36), sa.ForeignKey('rules.uuid')),
sa.Column('action', sa.String(255), nullable=False),
sa.Column('params', types.JsonEncodedDict)
sa.Column('params', types.JsonEncodedDict),
mysql_ENGINE='InnoDB',
mysql_DEFAULT_CHARSET='UTF8'
)