feat(core): las tablas nuevas del CMS nacen en InnoDB
Los dos sitios que crean tablas en caliente las creaban MyISAM: la funcion `createMissingSchemaTablesAndFields()` (cada seccion o tabla nueva del CMS) y la instalacion de plugins con tablas preset. Parecian codigo muerto porque usan `mysql_query`, que PHP 8 elimino, pero estan vivos: hay un shim en cms/lib/mysql.php que lo mapea a mysqli. Sin esto, cambiar el molde de las webs nuevas no servia de nada: la primera tabla que alguien creara desde el CMS volvia a nacer MyISAM y el molde se degradaba solo con el uso. InnoDB da recuperacion ante caida (MyISAM se corrompe con un OOM o un apagon y hay que repararlo a mano) y bloqueo por fila. El sql_mode de Forge ya no es estricto, asi que los INSERT parciales del CMS —AcaiAPI no rellena `dragSortOrder` ni los checkboxes— siguen colando con un aviso igual que con MyISAM, en vez de fallar con el error 1364. No toca ninguna tabla existente: solo el motor de las que se creen a partir de ahora. Contexto completo en docs/motor-innodb.md del repo de Forge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a9ecad4ee1
commit
12dfdd5fed
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user