Description of problem: For all Beaker's database tables we explicitly specify that the MySQL storage engine must be InnoDB. That way the tables are always in InnoDB regardless of the server's configured default storage engine. However alembic_version is created by alembic, not by Beaker code explicitly, and so it does not specify a storage engine. We should either find a way to make Alembic specify InnoDB, or (in the worst case) update all our docs to reflect the requirement that InnoDB be configured as the default storage engine. Version-Release number of selected component (if applicable): 19.2 Steps to Reproduce: 1. Configure a MySQL server with MyISAM as the default storage engine. (On RHEL6 mysql-server this is the default, just comment out any default-storage-engine setting in my.cnf.) 2. Create a new empty database, and configure Beaker to use it. 3. Run beaker-init to populate the new database. 4. Check which storage engine is used for the alembic_version table, by using: SHOW CREATE TABLE alembic_version; Actual results: MyISAM Expected results: InnoDB
On second thought, we could also just relax the check in test_all_tables_use_innodb to ignore alembic_version. There is probably no harm in letting alembic_version be on MyISAM (or any other storage engine) since we don't rely on any ACID properties or high performance or anything for that table -- it is only read and written when beaker-init is invoked.
This wasn't caught by the dogfood job, because it configures default-storage-engine=innodb. If we go with this option: (In reply to Dan Callaghan from comment #0) > or (in the worst case) update all > our docs to reflect the requirement that InnoDB be configured as the default > storage engine. then we can leave dogfood as is, but otherwise we should remove the default-storage-engine=innodb line from the dogfood job definition.
So Alembic doesn't offer any way to customise the table definition for alembic_version, and it doesn't really seem worth patching it to allow that. As per comment 1 we can just leave alembic_version on MyISAM and make the test skip it. Patch to make setup leave the default storage engine unset: https://git.beaker-project.org/cgit/beaker-meta-tasks/commit/?id=dea42e012f4f47d2d4f902dfc9621ae4f3a48e3e Patch to make the tests ignore the MySQL storage engine for alembic_version: http://gerrit.beaker-project.org/4186
This bug fix is included in beaker-server-21.0-0.git.8.0ec1fde.el6eng which is currently available for download here: https://beaker-project.org/nightlies/develop/
As per comment 3 we decided not to actually worry about which storage engine is used for alembic_version, this bug is just about the test suite failure when MyISAM is used. So marking this VERIFIED based on the fact that the tests are passing with the above two patches.
Beaker 20.2 has been released.