Jump to content

Recommended Posts

Posted
foreach( \IPS\Db::i()->getTables() as $table){
    $def =  \IPS\Db::i()->getTableDefinition($table);
    if($def['engine'] === 'MyISAM') {
        $query = 'ALTER TABLE ' . $table . ' ENGINE=InnoDB;';
        \IPS\Db::i()->query($query);
    }
}

i use this snippet to convert them over to innodb. it is likely your databases default engine type is myisam instead of innodb (cause not every schema has the engine type when the table is created, so the db installer lets the db server select it. this is what looks like what is happening here). 

Posted

You host is defaulted to MyISAM by default you can see it in the bottom right corner on your first screenshot. All your tables will default to that even on a fresh install. The same thing happened to me, and I had to convert them all to InnoDB. If IPS adds a new table in the future or even an add-on it will default to MyISAM everytime. The only way around this would be your host to set the default to InnoDB. But I can see from your screenshot that it is not.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...