Migrationen
database/schema.sql und database/schema.mysql.sql beschreiben immer den neuesten Stand. Version 1 (basis-v2.2)
ist dieser Stand bei EinfĂźhrung des Migrators (src/Storage/Migrator.php). Jede spätere Ănderung:
schema.sqlundschema.mysql.sqlauf den neuen Stand bringen (frische Installationen lesen nur diese).- Eine Datei je Treiber anlegen:
NNNN_name.sqlite.sqlundNNNN_name.mysql.sql, fortlaufend ab0002.
Sie läuft auf bestehenden DBs genau einmal, vor dem Angleichen, sieht also noch den alten Stand.
Sie muss idempotent sein (IF NOT EXISTS,UPDATE ⌠WHERE), weil sie auf DBs aus Zwischenständen treffen kann. tests/test_migrate.shlaufen lassen: migriert muss gleich frisch angelegt sein, sonst rolltmigratezurßck.
Unter SQLite gleicht migrate Tabellen zusätzlich selbst an das Soll an (Umbau mit Sicherung). Reine Strukturänderungen
brauchen dort oft keine Datei. Datenumformungen schon. Unter MySQL/MariaDB gibt es kein automatisches Angleichen.