SQLite-Bundles
Diese Seite richtet sich an Bündler, die Exponential auf SQLite 3 ausliefern, der Standarddatenbank. SQLite entfernt den Datenbankserver aus dem Bundle: Es gibt nichts separat zu installieren, zu starten, abzusichern oder zu aktualisieren.
Inhalt
- Warum SQLite zu Bundles passt
- Was der Treiber ergänzt
- Dateien und Rechte
- Die Regel des einen Hosts
- Backups
- Wann Sie stattdessen einen Server anbieten
Warum SQLite zu Bundles passt
- "SQLite 3 ist der Standard. Der Einrichtungsassistent wählt es vor,
exp:installverwendet es, wenn kein--dbangegeben ist, und die Vorlage des Kickstarters nennt es zuerst. Es braucht keinen Datenbankserver: Das gesamte Inhalts-Repository ist eine Datei" (Datenbankunterstützung). - "Mit dem Treiber, den Exponential mitliefert, ist es eine vollwertige Produktionsdatenbank für eine Website, die von einer Maschine ausgeliefert wird."
exp:installohne Optionen installiert auf SQLite mit der Dateiexponential.db(Installation mit einem Befehl).
Was der Treiber ergänzt
Aus 1. SQLite 3, der Standard:
- Write-Ahead-Logging, "sodass Seitenaufrufe weiterlesen, während ein Redakteur veröffentlicht";
- für einen Webserver gewählte PRAGMAs der Verbindung;
- seit 6.0.15 eine Schreibwarteschlange: "Jede Transaktion nimmt eine exklusive Sperre auf
<database>.writer-lockund führt dannBEGIN IMMEDIATEaus, sodass gleichzeitige Veröffentlichungen nacheinander drankommen (bis zuSQLiteTransactionWaitSekunden, Standard 25)".
Dateien und Rechte
"Die Datenbank besteht aus vier Dateien: der Datenbank, -wal, -shm und .writer-lock. Jeder Prozess, der die
Website verwendet (das PHP des Webservers, die Worker von Velocity, Cronjobs, Konsolenbefehle), muss das Verzeichnis
und die Dateien schreiben können; geben Sie ihnen eine gemeinsame Gruppe, den Verzeichnismodus 2775 und eine Umask
von 0002. Liefern Sie das Verzeichnis nie über HTTP aus (die mitgelieferten Rewrite-Regeln tun das nicht)."
Für ein Bundle:
- To do:
var/storage/sqlite3/existiert im Image und gehört dem Benutzer der Website (oder der gemeinsamen Gruppe). - To do: Der Installer läuft als dieser Benutzer.
- To do: Cron- und Konsolenbefehle laufen als dieser Benutzer.
- To do: Die mitgelieferte Webserver-Konfiguration behält das Routing der mitgelieferten Regeln bei (Webserver-Beispiele).
Die Regel des einen Hosts
"Wählen Sie stattdessen einen Datenbankserver, wenn mehr als eine Maschine in die Datenbank schreiben muss (WAL braucht gemeinsamen Speicher auf einem Host, ein Netzwerkdateisystem ist also kein Ersatz)". Für Container: "Betreiben Sie mit SQLite einen Container, der schreibt" (Container).
Ein Bundle auf SQLite sollte das in seiner Dokumentation klar sagen, damit niemand es auf drei Replikate auf einem gemeinsamen Volume skaliert.
Backups
Der Sicherungsumfang jeder Installation ist "die Datenbank und var/storage, settings/override und
settings/siteaccess"
(Container). Sichern Sie bei SQLite die
Datenbank konsistent, statt eine Datei mitten in einem Schreibvorgang zu kopieren; die Methoden stehen unter
SQLite für Hoster: Sicherung und Wiederherstellung und in
Kapitel 9.2.
Wann Sie stattdessen einen Server anbieten
| Bedarf | Wählen Sie |
|---|---|
| Mehrere Webserver oder Replikate | PostgreSQL oder einen anderen Server |
| Replikation, Datenbankbenutzer und Berechtigungen | einen Server |
| Viele Redakteure, die den ganzen Tag große Änderungen veröffentlichen | einen Server |
| Alles andere auf einer Maschine | SQLite genügt |
Ein Bundle kann beides anbieten: SQLite als Standard, PostgreSQL als Option (--db=pgsql), mit dokumentiertem
Wechsel. Die Datenbank-Engine wechseln behandelt einen
späteren Umzug.
Verwandte Seiten
- Datenbankwahl für Bundles
- SQLite für Hoster
- Bundles für Schulung und Demo
- 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.