Dr. McKay Posted November 11, 2019 Posted November 11, 2019 I recently migrated my IPS3 install to a new server where I installed MySQL 8 instead of 5. Trying to get IPS3 working with MySQL 8 proved to be a great challenge, so I just bit the bullet and migrated to IPS4 and wrote off my incompatible apps and hooks. However, I ran into a bug in the IPS4 updater. As per the MySQL manual, MEMBER was added as a reserved keyword in 8.0.17 (will be made non-reserved in 8.0.19, which isn't yet released). applications/core/setup/upg_40000/upgrade.php includes this query: $toRun = \IPS\core\Setup\Upgrade::runManualQueries( array( array( 'table' => 'core_voters', 'query' => "ALTER TABLE " . \IPS\Db::i()->prefix . "core_voters ADD COLUMN poll MEDIUMINT UNSIGNED NOT NULL COMMENT 'The poll ID', ADD INDEX poll (poll), DROP INDEX tid, ADD INDEX member(member_id, poll)" ) ) ); This fails when running MySQL >=8.0.17. The last line of the query should instead be ADD INDEX `member`(member_id, poll) with backticks. Would be great to have this fixed so nobody else gets bitten by this.
Management Matt Posted November 11, 2019 Management Posted November 11, 2019 We will sort that. We have done a MySQL 8 sweep but some of the older upgrader modules likely need looking at.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.