[HowTo] Installation von TYPO3 mit PostgreSQL als Datenbank

Dank DBAL (Database Abstraction Layer) ist es möglich, TYPO3 auch auf anderen Datenbanksystemen als MySQL zu installieren.

Installation TYPO3

Leider funktioniert das in der Praxis nicht ganz so einfach wie es sich anhört. Um TYPO3 mit PostgreSQL zu installieren, sond folgende Schritte notwendig:

  • Anlegen der PostgreSQL Datenbank, da dies nicht per 123-Installer möglich ist.
  • Die Datei ext_tables.sql in /typo3/sysext/cms bearbeiten und alle “ENGINE=InnoDB” entfernen
  • Die Datei tables.sql in /t3lib/stddb bearbeiten und hier ebenfalls alle “ENGINE=InnoDB” entfernen.
  • Nun noch den Patch von folgender Seite herunterladen und einspielen: 0008231: Cannot upgrade from 4.1.6 to 4.2.0 due to error - TYPO3 bugtracker, da ansonsten folgende Feherlemldunga ngezeigt wird:
Fatal error: Call to a member function admin_get_charsets() on a non-object in /homepages/12/d196318331/htdocs/typo3/4.2.0/t3lib/class.t3lib_install.php

Danach die localconf.php in typo3conf editieren und folgendes hinzufügen:

$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array (
  '_DEFAULT' => array (
  'type' => 'adodb',
   'config' => array(
   'driver' => 'postgres',
   )
 )
); 

Anschließend noch in $TYPO3_CONF_VARS[‘EXT’][‘extList’] die Extensions adodb und dbal eintragen damit diese geladen werden

$TYPO3_CONF_VARS['EXT']['extList'] .= ',adodb,dbal,<xxx>'; 

Nun kann der 123-Installer gestartet und die Installation wie gewohnt durchgeführt werden.

Sollte danach noch eine SQL-Fehlermeldung nach folgendem Muster im Frontend erscheinen

Query failed: ERROR: value too long for type character varying(20)

liegt das daran, dass das Feld “ident” der Tabelle “cach_hash” zu klein ist (Standardmäßig character varying 20). Einfach dieses Feld auf einen höheren Wert setzten (z. B. character varying 30 hat sich bei mir sehr gut bewährt).

Ich habe das ganze mit TYPO3 4.3-Dev ausprobiert. Bei der aktuellen Stable Version 4.2.1 sollte es jedoch genauso funktionieren.

Hinweis: Sollte es beim Anlegen von Contentelementen und deren Inhalt zu einer UTF-8 Fehlermeldung kommen, so muss das Backend von TYPO3 auf UTF-8 umgestellt werden. Dazu über das Install-Tool oder direkt in die localconf.php “[‘BE’][‘forceCharset’]” auf UTF-8 setzten.

RealURL

Leider funktionieren einige Extensions auch nur mit einigen Anpassungen mit PostgreSQL, unter anderem auch RealURL. Importiert wird die Extension wie gewohnt. Danach in der " ext_tables.sql" im Extensionverzeichnis wieder alle “ENGINE=InnoDB” entfernen. Beim Update der Datenbank werdenerstmal einige Warnungen angezeigt, diese können ignoriert werden. Jedoch darf die Tabelle “tx_realurl_uniqalias” nicht vom Extensionmanager heraus angelegt werden, da dies zu einem Fehler führt. Also das Häckchen entfernen und dann Installation fertig ausführen. Anschließend die noch fehlende Tabelle mit folgendem SQL-Anweisungen manuell anlegen:

CREATE TABLE tx_realurl_uniqalias (
  uid serial NOT NULL,
  tstamp integer DEFAULT '0' NOT NULL,
  tablename varchar(50) DEFAULT '' NOT NULL,
  field_alias varchar(30) DEFAULT '' NOT NULL,
  field_id varchar(30) DEFAULT '' NOT NULL,
  value_alias varchar(255) DEFAULT '' NOT NULL,
  value_id integer DEFAULT '0' NOT NULL,
  lang integer DEFAULT '0' NOT NULL,
  expire integer DEFAULT '0' NOT NULL,

  CONSTRAINT tx_realurl_uniqalias_pkey PRIMARY KEY (uid)
);

CREATE INDEX tablename
  ON tx_realurl_uniqalias
  USING btree
  (tablename);

CREATE INDEX bk_realurl01
  ON tx_realurl_uniqalias
  USING btree
  (field_alias,field_id,value_id,lang,expire);

CREATE INDEX bk_realurl02
  ON tx_realurl_uniqalias
  USING btree
  (tablename,field_alias,field_id,value_alias,expire);

Es werden zwar im Extensionmanager, wenn man die Informationen zur Extension anschaut, weitehrin Warnungen ausgegeben, aber sie funktioniertdennoch einwandfrei. Konfiguration, etc. erfolgt dann wie gewohnt.

Weitere Links
Weitere Informationen zur Installation unter PostgreSQL und Anpassungen von Extensions findet Ihr auf meiner Homepage.

Installation TYPO3 mit PostgreSQL: bauer-martin.com: TYPO3 und PostgreSQL
Installation RealURL: bauer-martin.com: TYPO3, PostgreSQL und RealURL