Zum Inhalt springen
Farbschema wählenSprache wählen

Eine Datenbank-Migration hinzufügen

SupaCloud verwendet sequenzielle, nummerierte SQL-Migrationen in server/migrations/.

  1. Finde die nächste Nummer — sicher. Migrationsnummern sind ein gemeinsam genutzter Namensraum über parallel arbeitende Entwickler und Worktrees hinweg. Bevor du eine Nummer auswählst:

    Terminal window
    git fetch
    ls server/migrations/ # höchste Nummer auf main ermitteln

    Durchsuche außerdem alle benachbarten Worktrees. Nimm dann die nächste freie Nummer.

  2. Füge die Datei als NNN_short_description.sql in server/migrations/ hinzu.

  3. Halte geschlossene CHECK-Vokabulare ausführbar. Benennt eine Migration einen gespeicherten Wert in einen Wert um, den der alte CHECK (... IN (...)) nicht erlaubt, ist diese Reihenfolge zwingend: DROP CHECK → UPDATE der alten Zeilen → ADD CHECK. Eine Löschung oder ein Rewrite auf einen bereits vom alten CHECK erlaubten Wert darf vor dem engeren CHECK erfolgen. Der eingecheckte Guard findet die unsichere Rename-Reihenfolge:

    Terminal window
    python3 scripts/check-migration-check-order.py --self-test
    python3 scripts/check-migration-check-order.py

    Ergänze bei möglichen Altwerten immer einen Seed-Upgrade-Test; eine leere Datenbank kann diese Fehlerklasse nicht aufdecken.

  4. Verifiziere, dass sie angewendet wird und der Server weiterhin typgeprüft wird:

    Terminal window
    cd server && cargo check