Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

SQLite für Exponential Platform: kein Datenbankserver nötig

Diese Seite ist für Entwickler, die eine Exponential Platform (die Symfony-basierte Plattform) in Minuten zum Laufen bringen wollen, ohne Datenbankserver. Es geht nicht um den eigenen SQLite-Treiber des Legacy-Kernels…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/features/6.0/platform-sqlite-install.md

On this page

This page is a translation. Read the English original

SQLite für Exponential Platform: kein Datenbankserver nötig

Diese Seite ist für Entwickler, die eine Exponential Platform (die Symfony-basierte Plattform) in Minuten zum Laufen bringen wollen, ohne Datenbankserver. Es geht nicht um den eigenen SQLite-Treiber des Legacy-Kernels: dafür siehe Datenbank SQLite für Exponential 6. Referenz: Spezifikation des SQLite-Installers der Plattform.

Repositorys: core (Kernel von Platform v5), ezplatform-kernel (Linie 3.x / 4.6), ezpublish-kernel (Linie 2.5), exponential-platform-legacy, exponential-platform-nexus / cjw-exponential-platform-nexus, legacyBridge.

Was es ist

Zwischen Januar und April 2026 lernten die Installer der Plattform, in eine einzelne SQLite-Datei zu installieren. Sie brauchen die PHP-Erweiterungen pdo_sqlite und sqlite3 und sonst nichts: keinen Server für MySQL, MariaDB oder PostgreSQL. Das Ergebnis ist eine vollständige Plattform-Datenbank (Inhaltstypen, Inhalte, Benutzer, Rollen, Suchtabellen) in var/data_dev.db.

Warum es hilft

  • Ein neuer Entwickler hat Minuten nach composer install eine laufende Administrationsoberfläche.
  • Automatisierte Tests und Demos laufen, ohne einen Server bereitzustellen.
  • Sie können eine ganze Website als eine Datei mitnehmen und sie später nach MySQL oder PostgreSQL konvertieren (Anleitung zum DXP-Skeleton, Konvertierung der Datenbank).

SQLite ist für Entwicklung, Tests, Demos und Deployments ohne Netzanbindung. Verwenden Sie MySQL, MariaDB oder PostgreSQL für Produktionswebsites mit gleichzeitig arbeitenden Redakteuren.

Verwenden (Platform v5)

Prüfen Sie die Erweiterungen:

php -m | grep -i sqlite        # must list pdo_sqlite and SQLite3

Tragen Sie dies in .env.local ein:

DATABASE_URL="sqlite:///%kernel.project_dir%/var/data_%kernel.environment%.db"
MESSENGER_TRANSPORT_DSN=sync://

sync:// wird gebraucht, weil der Standard-Transport von Doctrine Messenger eine zweite Datenbankverbindung will. Entfernen Sie die Zeilen DATABASE_DRIVER, DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER und DATABASE_PASSWORD; sie werden ignoriert, wenn ein vollständiger DSN gesetzt ist.

Installieren:

php bin/console exponential:install exponential-oss

Sie sehen Using SQLite database <path> (file created automatically on first connection). Der Installer legt das Verzeichnis bei Bedarf an, legt die Tabellen an, importiert die Startdaten und indiziert die Inhalte. Machen Sie die Datei dann für den Webserver beschreibbar (SQLite schreibt bei jeder Bearbeitung in die Datei):

chmod 664 var/data_dev.db
chown $USER:www-data var/data_dev.db     # use your web server group
php bin/console cache:clear

Auch das Verzeichnis, das die Datei enthält, muss beschreibbar sein, weil SQLite daneben Journal-Dateien anlegt.

Verwenden (Projekte im Stil von Platform 2.5 / Nexus 1.x)

Setzen Sie Treiber und Pfad in app/config/parameters.yml:

parameters:
    database_driver: pdo_sqlite
    database_path: '%kernel.project_dir%/var/data_%kernel.environment%.db'

(Der Standard von database_path ist %kernel.project_dir%/var/data_%kernel.environment%.db, zum Beispiel var/data_dev.db; die Umgebungsvariable DATABASE_PATH überschreibt ihn in app/config/env/generic.php.) Dann:

php bin/console ezplatform:install exponential-oss        # platform data
php bin/console ezplatform:install exponential-cjw        # Nexus: the CJW starter content (Nexus 1.0.0.4 and later)

Auf der Linie 2.5 heißt der Befehl noch ezplatform:install. Der Kernel der Linie 3.x / 4.6 registriert ihn als exponential:install mit dem alten Namen als Alias und installiert den Typ ibexa-oss (php bin/console exponential:install ibexa-oss); siehe Namen der Befehle und die Spezifikation des Installers für jeden Installationstyp.

Mit der Legacy Bridge

Eine Plattform-Installation auf SQLite kann seit v4.0.0.1 auch den Legacy-Kernel von Exponential über die Legacy Bridge ausführen: Die Bridge bildet pdo_sqlite auf die Legacy-Implementierung sqlite3 ab und übergibt den Dateipfad an die Legacy-site.ini. Der SQLite-Treiber des Legacy-Kernels selbst wird in der Spezifikation des Datenbanktreibers SQLite 3 beschrieben.

Was nebenbei behoben wurde (und warum Sie ihm trauen können)

Problem auf SQLiteBehebungWo / wann
doctrine:database:create scheitert mit „getListDatabasesSQL is not supported by platform“der Installationsbefehl erkennt SQLite, sorgt für das Verzeichnis und überspringt den Aufrufcore 29.04.2026, ezplatform-kernel 11.04.2026
Der Installer wählte das Verzeichnis der SQL-Dateien nach dem Plattformnamen von Doctrine, der das SQLite-Verzeichnis nicht zuverlässig nenntdas DBMS wird mit instanceof erkannt (MySQL, PostgreSQL, SQLite)core 29.04.2026
Tabellen mit zusammengesetztem Primärschlüssel (id, version) wie die Inhaltsattribute erhielten einen einspaltigen Autoincrement-Schlüssel, sodass das Speichern eines neuen Entwurfs eine Verletzung einer Eindeutigkeitsbedingung auslösteder Installer setzt die SQLite-Plattformklasse von Ibexa ein, sodass Tabellen mit zusammengesetztem Schlüssel kein AUTOINCREMENT erhalten; die Startdatei von 3.x löscht die drei betroffenen Tabellen und legt sie mit dem richtigen Schlüssel neu ancore 29.04.2026, ezplatform-kernel 07.04. / 11.04.2026
Escape-Folgen von MySQL in den Startdaten (\', \n) zerstörten SQLiteStartdaten konvertiert: '' für Anführungszeichen, echter Leerraum für \n \r \tezpublish-kernel 09.04.2026, ezplatform-kernel 07.04.2026
Legacy-Tabellen fehlten bei Installationen von Plattform plus Legacy73 Tabellen des Legacy-Schemas an die Startdaten angehängtezplatform-kernel 29.03.2026
Eine harmlose Warnung bei der Neuindizierung brach eine frische Installation abder Indizierungsschritt ist umschlossen, sodass eine Warnung bei einer leeren Installation den Befehl nicht anhältezpublish-kernel 09.04.2026

Grenzen

  • Ein Schreiber zur Zeit. Verwenden Sie SQLite nicht für ein stark beschäftigtes Redaktionsteam.
  • Dateiberechtigungen sind das übliche Installationsproblem: Der Benutzer des Webservers muss die .db-Datei und ihr Verzeichnis besitzen oder beschreiben können.
  • Die Startdateien tragen das Inhaltsmodell des Installationstyps, den Sie wählen; ein anderer Installationstyp braucht eigene Startdaten.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x