Anfängerfrage : sql in dca für einzelne Tabellenspalte in bestehende Tabelle
Hallo zusammen,
ich bin dran, mich in den DCA zu "vertiefen". Dafür habe ich das Screencast-Tutorial von trill von der Contao Version 2.11 durchgearbeitet und auf Contao3 umgemünzt.
Es funktioniert alles soweit, bis auf das Definieren einer neuen Spalte in einer bereits vorhandenen Tabelle von tl_module.
In Tutorial 2.11 wird dies über die database.sql gemacht:
Code:
CREATE TABLE `tl_module` (
`screencast_archives` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Ich habe versucht, diesen Teil in die tl_module.php Datei unter dem Screencast-Ordner einzufügen:
PHP-Code:
$GLOBALS['TL_DCA']['tl_module'] = array(
'config' => array
(
'dataContainer' => 'Table',
'switchToEdit' => true,
'enableVersioning' => true,
),
'fields' => array
(
'screencast_archives' => array (
'label' => $GLOBALS['TL_LANG']['tl_module']['screencast_archives'],
'inputType' => 'select',
'foreignKey' => 'tl_screencast_archive.title',
'eval' => array('mandatory' => true),
'sql' => "int(10) unsigned NOT NULL default '0'",
),
),
);
Leider finde ich im Entwicklerbuch/Referenz keine Möglichkeit, den SQL Befehl als "erweiterung" der bereits vorhandenen Tabelle zu behandeln. Lasse ich die Datenbank "aktualisieren" will er alle nicht aufgeführten Tabellen-Spalten mit einem DROP löschen. Was über die database.sql-Datei anstandlos funktionierte, klemmt in meinem DCA-Versuch.
Gibt es eine Möglichkeit eine einzelne Spalte über den DCA nur hinzuzufügen, oder ist da die database.sql im Config-Ordner nötig, oder habe ich einen anderen totalen Knoten in der Überlegung.
Vielleicht kann mir jemand da raushelfen. Im Forum habe ich nichts passendes gefunden.
Besten Dank
Martin