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;