databasetabletype

More
3 years 10 months ago #103599 by rbaier
rbaier created the topic: databasetabletype
Hallo,

in Version 1.92+ konnte man in "config-defaults.php" den Eintrag
$databasetabletype = 'InnoDB';
schreiben, damit neu erzeugte survey results tables und token tables den Tabellentyp InnoDB erhielten. Das funktionierte seinerzeit auch.

In Version 2.00+ habe ich es bisher nicht hinbekommen, diese Option so einzutragen, dass sie die gewünschte Wirkung zeigt. Es werden bislang nur MyISAM-Tabellen erzeugt.

Kann mir jemand sagen, wie es geht?

mfg
Roland

LS: 2.00+ Build 131031
MySQL: 5.1.65
PHP: 5.2.14
OS: SLES 11

Please Log in to join the conversation.

More
3 years 8 months ago #106407 by rbaier
rbaier replied the topic: databasetabletype
Hallo,

ein Update auf Version 2.05+ brachte auch keine Lösung des Problems, daher habe ich etwas im PHP-Code gestöbert und bin fündig geworden.
Die Datei LSHOME/application/helpers/database_helper.php enthält die Funktion:
function createTable($sTableName, $aColumns, $sOptions=null)
in der auch folgende Anweisungen stehen:
....
{
if (is_null($sOptions))
$sOptions='ENGINE=MyISAM';
...

Dies deute ich so, dass immer nur die Engine MyISAM bei der Tabellenerzeugung angewendet wird und irgendwelche Options nicht berücksichtigt werden.
Testweise habe ich den Code geändert in
$sOptions='ENGINE=InnoDB';
und dies bewirkte dann, dass nun wie gewünscht InnoDB-Tabellen (anstelle von MyISAM) erzeugt werden.
Der Parameter "databasetabletype" wird von LimeSurvey 2.x anscheinend nicht mehr berücksichtigt.

mfg
Roland

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!