FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
Sind Sie auf der Suche nach einer Kurzanleitung für TYPO3 PostgreSQL? In diesem Artikel finden Sie die Installation und Konfiguration des PostgreSQL-Servers und die Einrichtung von TYPO3 CMS mit einer PostgreSQL-Datenbank.
Liebe TYPO3-Leser, wie Sie mein Ritual kennen, erinnern wir uns an diejenigen, die sehr hart daran arbeiten, mehrere Datenbanken in das TYPO3 CMS zu integrieren. Ich wollte diesen Blog ihnen widmen; #T3Kudos an alle, die zu diesem Projekt beigetragen haben.
Schnelleinführung in PostgreSQL
<script type="text/javascript"
src="https://ssl.gstatic.com/trends_nrtr/2674_RC03/embed_loader.js"></script> <script
type="text/javascript"> trends.embed.renderExploreWidget("TIMESERIES",
{"comparisonItem":[{"keyword":"/m/05ynw","geo":"","time":"today
5-y"},{"keyword":"MySQL","geo":"","time":"today 5-y"},{"keyword":"MariaDB","geo":"","time":"today 5-y"}],"category":0,"property":""},
{"exploreQuery":"date=today%205-y&q=%2Fm%2F05ynw,MySQL,MariaDB","guestPath":"https://t
rends.google.com:443/trends/embed/"}); </script>
Relationale Datenbanken sind das Rückgrat der Datenorganisation für ein breites Spektrum von Anwendungen. Sie ermöglichen alles, vom Internet-Shopping bis zum Raketenstart. PostgreSQL ist eine altehrwürdige und dennoch aktuelle Datenbank. PostgreSQL hält sich an die meisten SQL-Standards, unterstützt ACID-Transaktionen, Fremdschlüssel und Ansichten und wird immer noch aktiv weiterentwickelt.
Was ist Doctrine DBAL (Database Abstraction Layer)?
Die Daten in TYPO3 CMS werden in einem relationalen Datenbankmanagementsystem (RDBMS) gespeichert. Die Anbindung an verschiedene Datenbankmanagementsysteme wird über die Doctrine DBAL-Komponente ermöglicht. Die beliebteste Datenbank ist nach wie vor MySQL/MariaDB. Dank Doctrine sind jedoch auch weitere Datenbanken wie PostgreSQL und SQLServer verfügbar.
Wie funktioniert die technische Anbindung der TYPO3-Datenbank?
In TYPO3 werden Datenbankabfragen über eine Doctrine DBAL-basierte API durchgeführt. Der System-Extension-Core, der immer geladen und daher immer verfügbar ist, stellt die API zur Verfügung. Diese Low-Level-API ermöglicht es Autoren von Extensions, Abfrageoperationen direkt auf dem gewählten DBMS zu verwalten. Doctrine DBAL wurde mit TYPO3 CMS Version 8 eingeführt und ersetzte die traditionelle $GLOBALS['TYPO3 DB']-basierte API.
Übersetzt mit www.DeepL.com/Translator (kostenlose Version)
TYPO3 Doctrine DBAL und Doctrine ORM
Doctrine ist ein zweiteiliges Projekt, wobei Doctrine DBAL eine Low-Level-Datenbankabstraktion und eine Schnittstelle zur Erstellung von Abfragen an bestimmte Datenbank-Engines bietet und Doctrine ORM ein High-Level-Objekt-Relational-Mapping auf Doctrine DBAL aufbaut.
Die DBAL-Komponente wird ausschließlich durch den TYPO3 Core implementiert. Doctrine ORM wird nicht benötigt, ausgeführt oder verwendet.
Übersetzt mit www.DeepL.com/Translator (kostenlose Version)
Welche Datenbanken werden in TYPO3 CMS unterstützt?
Das ist das Schöne am funktionsreichen TYPO3 CMS; es unterstützt die folgenden Datenbanken im TYPO3-Kern :)
- MySQL/MariaDB
- Microsoft SQL Server
- PostgreSQL
- Oracle
- Firebird
Welche PostgreSQL-Versionen werden von TYPO3 unterstützt?
Laut der offiziellen Dokumentation von TYPO3 CMS unterstützt es die PostgreSQL-Versionen 7.x und 8.x. Das sind die von der TYPO3-Community gut getesteten Versionen. Ich bin sicher, dass auch die anderen aktuellen Versionen gut funktionieren sollten - machen Sie einfach eine Testfahrt ;)
PostgreSQL-Server für TYPO3 installieren
Bevor wir uns die Konfiguration von PostgreSQL in TYPO3 ansehen, sollten wir es installieren.
Die nachfolgende Installation und Konfiguration von PostgreSQL wurde mit Debian 8 getestet, je nach
UNIX-Variante, müssen Sie möglicherweise Befehle herausfinden.
# sudo apt-get update
Reading package lists... Done.
# sudo apt-get install postgresql-9.4 postgresql-client-9.4
Überprüfen wir die PostgreSQL-Installation
Testen Sie Ihre PostgreSQL-Installation mit dem Befehl grep.
# ps -ef | grep postgre
postgres 32164 1 0 21:58 ? 00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/ postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
postgres 32166 32164 0 21:58 ? 00:00:00 postgres: checkpointer process
postgres 32167 32164 0 21:58 ? 00:00:00 postgres: writer process
postgres 32168 32164 0 21:58 ? 00:00:00 postgres: wal writer process
postgres 32169 32164 0 21:58 ? 00:00:00 postgres: autovacuum launcher process
postgres 32170 32164 0 21:58 ? 00:00:00 postgres: stats collector process
Login-Zugang zum PostgreSQL-Datenbank-Server
Wissen Sie, wie man sich in den PostgreSQL-Server einloggt? Er ist dem MySQL/MariaDB-Datenbankserver sehr ähnlich.
# su - postgres
Sie sollten nun als postgres eingeloggt sein. Um die PostgreSQL-Konsole zu starten, geben Sie psql ein:
# psql
psql (9.4.2)
Geben Sie "help" für Hilfe ein.
postgres=#
Wie fügt man eine neue Rolle in PostgreSQL hinzu?
Um zusätzliche Rollen zu erstellen, können wir den Befehl createuser verwenden. Beachten Sie, dass dieser Befehl unter dem Benutzer postgres und nicht in der PostgreSQL-Konsole ausgeführt werden muss:
createuser --interactive
TYPO3 PostgreSQL Datenbank erstellen
Sie können die entsprechende Datenbank erstellen, indem Sie diesen Befehl einfach als postgres-Benutzer aufrufen:
createdb test1
Verbinden mit PostgreSQL mit dem neuen Benutzer
Nehmen wir an, Sie haben ein Linux-Konto mit dem Namen test1, eine entsprechende PostgreSQL-Rolle test1 erstellt und die Datenbank test1 angelegt. So ändern Sie das Benutzerkonto in Linux in test1:
su - test1
Verbinden Sie sich dann mit der Datenbank test1 als PostgreSQL-Rolle test1, indem Sie den Befehl verwenden:
# psql
pgAdmin - PostgreSQL Datenbank Werkzeug
pgAdmin ist die beliebteste und funktionsreichste Open-Source-Administrations- und Entwicklungsplattform für PostgreSQL, die weltweit fortschrittlichste Open-Source-Datenbank. Erkunden Sie unter https://www.pgadmin.org/
Installation der TYPO3 PostgreSQL Datenbank
Wenn Sie bei der Installation von TYPO3 CMS den PostgreSQL-Server installiert haben, wählen Sie bei der Auswahl der Datenbank die Option "Manuell konfigurierte PostgreSQL-Verbindung".
Konfiguration der TYPO3 PostgreSQL Datenbank
Wie bei anderen zentralen Konfigurationsoptionen erfolgt die Konfiguration des Datenbank-Endpunkts und des Mappings in typo3conf/LocalConfiguration.php und endet in $GLOBALS['TYPO3_CONF_VARS'] nach dem Core-Bootstrap. Das spezifische Unter-Array ist $GLOBALS['TYPO3_CONF_VARS']['DB'].
Ein typisches, einfaches Beispiel, das nur die Standardverbindung mit einem einzigen Datenbankendpunkt verwendet:
// LocalConfiguration.php
// [...]
'DB' => [
'Connections' => [
'Default' => [
'charset' => 'utf8',
'dbname' => 'postgreDatabaseName',
'driver' => 'postgres',
'host' => 'postgreHost',
'password' => 'postgrePassword',
'port' => 5432,
'user' => 'postgreUser',
],
],
],
// [...]
Verwendung mehrerer Datenbanken
Ein etwas komplexeres Beispiel mit zwei Verbindungen, bei dem die sys_log-Tabelle auf einen anderen Endpunkt abgebildet wird:
// LocalConfiguration.php
// [...]
'DB' => [
'Connections' => [
'Default' => [
'charset' => 'utf8',
'dbname' => 'default_dbname',
'driver' => 'mysqli',
'host' => 'default_host',
'password' => '***',
'port' => 3306,
'user' => 'default_user',
],
'Syslog' => [
'charset' => 'utf8',
'dbname' => 'postgreDatabaseName',
'driver' => 'postgres',
'host' => 'postgreHost',
'password' => 'postgrePassword',
'port' => 5432,
'user' => 'postgreUser',
],
],
'TableMapping' => [
'sys_log' => 'Syslog'
]
],
// [...]
TYPO3 PostgreSQL @ DDEV Docker
Die TYPO3-Community liebt die DDEV TYPO3 Docker-Lösung für ihre lokale Entwicklungsumgebung.
Um TYPO3 PostgreSQL mit DDEV Docker zu testen, lesen Sie bitte die offizielle Schritt-für-Schritt-Anleitung unter
https://github.com/drud/ddev-contrib/blob/master/docker-compose-services/postgres/README.md
Einpacken!
Vielen Dank für das Lesen meines Blogs. Ich hoffe, Sie haben die Grundlagen von TYPO3 PostgreSQL gelernt.
Die meisten TYPO3 Projekte werden auf Umgebungen wie LAMP mit MySQL/MariaDB Datenbank entwickelt. Aber viele versuchen, Projekte mit dem populären PostgreSQL zu erstellen. Habt ihr Erfahrungen mit TYPO3 PostgreSQL? Was ist Ihre Erfahrung mit TYPO3 PostgreSQL? Natürlich können Sie mir bei Fragen oder Unterstützung gerne in das Kommentarfeld schreiben.
Ich wünsche Ihnen viel Spaß mit TYPO3 PostgreSQL!
Thanks for the article, very informative.