Force InnoDB engine on interfaces table
If the system is set to use MyISAM engine as default, during upgrade a new conductor_hardware_interfaces table will be created with MyISAM engine. This will cause a mix of InnoDB and MyISAM tables in single database, and obsolete a foreign key to conductors table. This bug in particular fails test_models_sync unit test, when it is executed on a system, where MyISAM is set as default option for local MySQL server. Change-Id: Ic47426b1a12eda5728e9971a27ad3767c0245d50 Closes-Bug: 1702158
This commit is contained in:
parent
8e48156488
commit
1a0c7091a6
@ -44,4 +44,6 @@ def upgrade():
|
|||||||
sa.UniqueConstraint(
|
sa.UniqueConstraint(
|
||||||
'conductor_id', 'hardware_type',
|
'conductor_id', 'hardware_type',
|
||||||
'interface_type', 'interface_name',
|
'interface_type', 'interface_name',
|
||||||
name='uniq_conductorhardwareinterfaces0'))
|
name='uniq_conductorhardwareinterfaces0'),
|
||||||
|
mysql_charset='utf8',
|
||||||
|
mysql_engine='InnoDB')
|
||||||
|
22
releasenotes/notes/bug-1702158-79bf57bd4d8087b6.yaml
Normal file
22
releasenotes/notes/bug-1702158-79bf57bd4d8087b6.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes a bug 1702158, where the wrong database engine is used for the
|
||||||
|
conductor_hardware_interfaces table, if the system is using MySQL prior to
|
||||||
|
version 5.5 (or the default_storage_engine option is set explicitly to
|
||||||
|
'MyISAM' in my.cnf). In this case, a table could be created with MyISAM
|
||||||
|
engine and foreign key constraint conductor_id(conductors.id) ignored.
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Due to a bug 1702158, conductor_hardware_interfaces table could be created
|
||||||
|
with MyISAM database engine, while all other tables in ironic database are
|
||||||
|
using InnoDB engine. This could happen during initial installation, or
|
||||||
|
upgrade to ocata release, if the system is using MySQL prior to version 5.5
|
||||||
|
(or the default_storage_engine option is set explicitly to 'MyISAM' in
|
||||||
|
my.cnf). If this is the case, conductor_hardware_interfaces needs to be
|
||||||
|
manually migrated to InnoDB, and foreign key constraint re-created::
|
||||||
|
|
||||||
|
alter table conductor_hardware_interfaces engine='InnoDB';
|
||||||
|
alter table conductor_hardware_interfaces
|
||||||
|
add constraint conductor_hardware_interfaces_ibfk_1
|
||||||
|
foreign key (conductor_id) references conductors(id);
|
Loading…
Reference in New Issue
Block a user