diff --git a/cms/lib/database_functions.php b/cms/lib/database_functions.php index d6a23fa..313461f 100755 --- a/cms/lib/database_functions.php +++ b/cms/lib/database_functions.php @@ -74,7 +74,12 @@ function createMissingSchemaTablesAndFields() { $mysqlTableName = $TABLE_PREFIX . $tableName; if (!in_array($mysqlTableName, $mysqlTables)) { notice("Creating MySQL table for schema table: $tableName
\n"); - $result = mysql_query("CREATE TABLE `".mysql_real_escape_string($mysqlTableName)."` (num int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (num)) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;"); + // InnoDB (antes MyISAM): las tablas nuevas nacen con recuperacion + // ante caida y bloqueo por fila. El sql_mode de Forge no es + // estricto, asi que los INSERT parciales del CMS (AcaiAPI no + // rellena dragSortOrder ni los checkboxes) siguen colando igual + // que con MyISAM. Ver docs/motor-innodb.md del repo de Forge. + $result = mysql_query("CREATE TABLE `".mysql_real_escape_string($mysqlTableName)."` (num int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (num)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"); if (!$result) { alert("Error creating MySQL table: $mysqlTableName
\MySQL error was: ". htmlspecialchars(mysql_error()) . "\n"); } } diff --git a/cms/lib/plugins/index.php b/cms/lib/plugins/index.php index a962a3f..9304024 100644 --- a/cms/lib/plugins/index.php +++ b/cms/lib/plugins/index.php @@ -210,7 +210,7 @@ function addTablePlugin($path,$file) { $result = mysql_query("CREATE TABLE `".mysql_real_escape_string($tableNameWithPrefix)."` ( num int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (num) - ) ENGINE=MyISAM DEFAULT CHARSET=utf8;"); + ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); if (!$result) { print "Error creating MySQL table.\n\nMySQL error was: ". htmlspecialchars(mysql_error()) . "\n"; exit;