Datenbank-Migrationen
Orimora verwendet Drizzle ORM mit SQL-Migrationsdateien unter src/lib/server/db/migrations/.
Migrationen ausführen
Abschnitt betitelt „Migrationen ausführen“# Entwicklung (nutzt DATABASE_URL aus .env)yarn db:migrate
# Docker / Produktion (läuft automatisch beim Container-Start)node run-migrations.mjsMigrationen werden der Reihe nach angewendet und in drizzle.__drizzle_migrations getrackt.
In Docker-Deployments (inklusive Coolify) laufen Migrationen automatisch beim Container-Start über docker-entrypoint.sh. Kein manueller Schritt nötig.
Migration-Runner
Abschnitt betitelt „Migration-Runner“Orimora nutzt einen eigenen Migration-Runner (run-migrations.mjs) statt drizzle-kit migrate oder drizzle-orm/postgres-js/migrator:
-
Einzelne Transaktionen: Jede Migration läuft in einer eigenen Transaktion. Wenn Migration 15 fehlschlägt, bleiben 1–14 erhalten. Der eingebaute Drizzle-Migrator packt alles in eine Transaktion — ein Fehler rollt alles zurück.
-
Sichtbare Fehler: Bei Fehlern werden Tag, PostgreSQL-Fehlercode, Detail und Hint ausgegeben. Der Standard-Migrator beendet sich oft mit Exit-Code 1 ohne klare Meldung.
-
Hash-basiertes Tracking: Der Runner nutzt Content-Hashes statt Timestamps — vermeidet Probleme mit nicht-monotonen Journal-Einträgen.
Neue Migration hinzufügen
Abschnitt betitelt „Neue Migration hinzufügen“Migrationen in Orimora sind handgeschrieben. Jede wird von Hand verfasst:
- Die nächst-nummerierte SQL-Datei in
src/lib/server/db/migrations/anlegen (z. B.0078_add_widget_table.sql) mit reinem SQL.IF NOT EXISTS/IF EXISTSnutzen, damit ein erneuter Lauf sicher ist. - Einen passenden Eintrag in
src/lib/server/db/migrations/meta/_journal.jsonergänzen — der Runner wendet Dateien in Journal-Reihenfolge an. - Das Drizzle-Schema in
src/lib/server/db/schema/von Hand synchron halten, damit die TypeScript-Typen zur neuen DB-Form passen. - Lokal mit
yarn db:migrateanwenden und prüfen.
Schema-Überblick
Abschnitt betitelt „Schema-Überblick“| Tabelle | Zweck |
|---|---|
teams | Mandanten-Isolation |
users | Teammitglieder |
sessions | Auth-Sessions |
collections | Dokument-Gruppen |
documents | Wiki-Seiten |
document_revisions | Versionsverlauf |
comments | Inline-Kommentare |
notifications | In-App-Benachrichtigungen |
audit_events | Security-Audit-Log |
tags / document_tags | Tagging |
stars | Lesezeichen |
views | Leseverlauf |
backlinks | Querverweise |
webhooks | Ausgehende Webhooks |
api_keys | API-Authentifizierung |
team_llm_configs | KI-Provider-Konfiguration |
Coolify & Produktion
Abschnitt betitelt „Coolify & Produktion“- Nach jedem Deploy wendet der Container beim Start ausstehende Migrationen an.
- Schlägt eine Migration fehl, startet die App nicht — Logs in Coolify → Service → Logs prüfen.
- Manuell im Container-Terminal:
node run-migrations.mjs
Siehe auch
Abschnitt betitelt „Siehe auch“- Installation — lokale
yarn db:migrate - Coolify Setup — automatische Migrationen beim Deploy
- Architektur