TYPO3 mit PostgreSQL betreiben
MySQL fremd gehen?
Die System Extensions dbal und adodb ermöglichen es, eine andere Datenbank als MySQL zu verwenden. Auf einem Linux System bietet sich als alternative die Datenbank PostgreSQL an. Da sie ebenfalls OpenSource ist sie in der Regel in den Linux-Distribitionen einfach zu installieren.
Ist TYPO3 dank Datenbank Abstraktionslayer dbal wirklich in der Lage mit beliebigen Datenbanken zusammen zu arbeiten? Der Selbstversuch mit PostgreSQL soll es zeigen
PostgreSQL an TYPO3 anbinden
Eine Verbindung herzustellen ist - wenn die Schritte klar sind, nicht besonders schwer. TYPO3 wird ganz normal installiert: dummy + Source heruntergeladen, extrahiert, verlinkt und Datei-Rechte angepasst.
Bevor man das install-Tool aufruft müssen ein paar Anpassungen in der typo3conf/localconf.php von Hand vorgenommen werden.
- Die Extensions "dbal" und "adodb" müssen geladen werden. Dafür werden sie vor die bestehenden Extensions an die Liste der zu ladenen Extensions eingefügt:
$TYPO3_CONF_VARS['EXT']['extList'] = 'dbal,adodb,.....'; - Die Datenbank muss per Hand angelegt werden!
- Anschließend sollen einige Funktionen aus der Datei typo3/sysext/dbal/res/postgresql/postgresql-compatibility.sql imortiert werden. In meiner Installation musste ich dafür erst die Sprache "plpgsql" innerhalb von PostgreSQL aktivieren.
- Die Konfiguration für die PostgreSQL Datenbank muss eingetragen werden.
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array('_DEFAULT' => array('type' => 'adodb', 'config' => array('driver' => 'postgres'))); - Die Datenbank Konfigurationsvariablen $typo_db_username, $typo_db_password, $typo_db_host, $typo_db müssen ebenfalls gesetzt werden. In meiner Installation wird die PostgreSQL Datenbank über einen Unix-Socket angesprochen. Daher muss $typo_db_host leer gelassen werden. Das Install-Tool erlaubt allerdings keinen leeren $typo_db_host. Daher kann der erste Schritt des Install-Tools nicht gespeichert werden.
Wenn die Einstellungen für die Datenbank richtig vorgenommen wurden (was bei mir mangels Kentnisse von PostgreSQL etwas länger dauerte:) kann die notwendige Datenbankstruktur im zweiten Schritt ("Database Analyser") des Install-Tools angelegt werden. Dort den Punkt "Update required tables" ausführen.
Anschließend sollten die notwendigen Tabellen und Felder angelegt werden. Leider zeigt das Install-Tool enorm viele Felder an, deren Struktur nicht so sind wie gewünscht. Zum einen ist die Festlegung, dass INNODB verwendet soll eine reine MySQL Geschichte die entsprechend nicht umgesetzt werden kann. Zum anderen werden die Default-Werte anders umgesetzt.
Aufmerksamkeit beim Updaten oder beim Installieren von Extension ist also gefragt - und ohne Datenbank Kenntnisse wird es wohl schwierig die Meldungen richtig einzuordnen.
und es läuft
Mein Test-System scheint soweit zu laufen, allerdings gehe ich davon aus, dass viele Extensions so programmiert sind, dass sie nur mit MySQL zusammen arbeiten.
Allerdings habe ich bei diesem kleinen Experiment noch was anderes erfahren - das es möglich ist einzelne Tabellen zu mappen. Die Extension dbal ermöglicht es, für jede einzelne Tabelle zu definieren aus welcher Datenbank sie gefüttert werden soll. Das könnte interessant werden, wenn alt-Anwendungen mit möglichst geringem Aufwand integriert werden müssen.
Für den produktiven Einsatz würde ich PostgreSQL derzeit nicht verwenden wollen. Wenn MySQL nicht zur Auswahl steht wäre es allerdings möglich. Jedoch müsste jede Extension die eingesetzt werden soll vorher auf kompatiblität geprüft werden - bzw. angepasst werden. Wer nicht die ausreichenden Kenntnisse von SQL, TYPO3 und PostgreSQL hat, wird wenig Freude haben.
- 0 Kommentare




Mein Kommentar