SQLite für die Entwicklung
Diese Seite richtet sich an Entwickler, die ein DXP-Projekt auf einem Laptop, in einer Test-Pipeline oder auf einem Demo-Server betreiben möchten, ohne einen Datenbankserver zu installieren. Die Unterstützung von SQLite gehört zu dem, was die DXP gegenüber der Upstream-Linie ergänzt (Wer ist die Exponential Foundation?).
Inhalt
Fünf Schritte
Prüfen Sie die Erweiterungen.
php -m | grep -i sqlite # expect SQLite3 and pdo_sqliteSetzen Sie den DSN in
.env.localund entfernen SieDATABASE_DRIVER,DATABASE_HOSTund die übrigen Teile:DATABASE_URL="sqlite:///%kernel.project_dir%/var/data_%kernel.environment%.db" MESSENGER_TRANSPORT_DSN=sync://Die Messenger-Zeile ist wichtig: Der Standard-Transport über Doctrine braucht eine zweite Datenbankverbindung, die SQLite ihm unter Umständen nicht gibt;
sync://verarbeitet Nachrichten in derselben Anfrage (Messenger und Benachrichtigungen).Installieren Sie. Der Befehl legt
var/data_dev.db(odervar/data_prod.db) an, importiert die Ausgangsinhalte und legt die Doctrine-Tabellen an.php bin/console exponential:install exponential-ossLassen Sie den Webserver die Datei schreiben. SQLite schreibt bei jeder Bearbeitung in die Datei:
chmod 664 var/data_dev.db chown "$USER":www-data var/data_dev.db # your web server's groupLeeren Sie den Cache:
php bin/console cache:clear.
Zwei Fehler, denen Sie begegnen werden
| Fehler | Ursache | Abhilfe |
|---|---|---|
no such table: ibexa_section | die Datenbankdatei wurde nie initialisiert | den Installationsbefehl ausführen; existiert eine leere Datei, diese zuerst entfernen und erneut installieren |
attempt to write a readonly database | die Installation lief unter einem anderen Benutzer als der Webserver | Eigentümer und Modus wie in Schritt 4 korrigieren |
Grenzen
Aus der Anleitung des Skeletons:
| Grenze | Auswirkung |
|---|---|
| keine gleichzeitigen Schreibtransaktionen | Schreibvorgänge stauen sich unter Last und können eine Zeitüberschreitung erreichen |
| keine Replikation und kein Clustering | nur ein Server |
| kein FULLTEXT-Index | die Volltextsuche fällt auf LIKE-Abfragen zurück |
| Sperren auf Dateiebene | die Datei muss auf einem lokalen Dateisystem liegen, nicht auf NFS oder CIFS |
SQLite ist richtig für Entwicklung, automatisierte Tests, Demos und Installationen ohne Netzverbindung. Verwenden Sie für jede öffentliche Website oder Website mit mehreren Benutzern MySQL 8.0, MariaDB 10.6 oder PostgreSQL 14 oder neuer.
Später auf eine Serverdatenbank umziehen
Die Anleitung des Skeletons stellt ein SQLite-Projekt mit sqlite3-to-mysql auf MySQL oder mit pgloader auf
PostgreSQL um. Entfernen Sie danach den SQLite-DSN und den Transport sync:// aus .env.local
(Datenbanken, zwischen Engines umstellen).
Verwandte Seiten
- SQLite für Exponential Platform
- SQLite-Installer der Plattform
- Datenbankunterstützung in Exponential 6
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
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.