Welcome, Guest
Username: Password: Remember me

TOPIC: databasetabletype

databasetabletype 3 months 1 week ago #103599

  • rbaier
  • rbaier's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Karma: 0
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
The administrator has disabled public write access.

databasetabletype 1 month 6 days ago #106407

  • rbaier
  • rbaier's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 5
  • Karma: 0
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
The administrator has disabled public write access.
Moderators: ITEd
Time to create page: 0.102 seconds
Donation Image