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
This commit is contained in:
Dmitry Tantsur 2015-10-15 13:13:50 +02:00
parent 818f00315f
commit fbfdf5ee69
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'
)