Der alte Code fuegt fast ueberall Zeilen ein, ohne alle NOT-NULL-Spalten zu
setzen; der nicht strikte Modus hat dann '', 0 oder ein Nulldatum
eingesetzt. Diese Werte stehen jetzt als DEFAULT im Schema. Weggelassene
Spalten verhalten sich damit wie bisher, ungueltige Werte, zu lange Texte
und falsche Verweise lehnt der strikte Modus weiterhin ab.
Das Migrationsskript meldet Spalten, die in der Quelle fehlen und ueber den
Standardwert gefuellt werden.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
update/migration-utf8mb4.php kopiert eine Instanz-Datenbank in eine neue
Datenbank mit update/schema.sql. Jeder Textwert wird einzeln eingeordnet
(korrekt, doppelt, mehrfach kodiert, unklar) und nur repariert, wenn die
Rueckfuehrung ueber MySQLs latin1-Abbildung eindeutig ist. Die Quelle bleibt
unveraendert.
- "pruefen" liest nur und gibt einen Bericht aus
- "migrieren <ziel>" legt das Ziel an, kopiert im strikten Modus, fuellt
fehlende Spalten und NULL in Pflichtfeldern mit Leerwerten, prueft die
Fremdschluessel und meldet verwaiste Verweise
Getestet gegen Dummy-Daten im alten Schema (778 doppelt, 28 mehrfach,
180 korrekt, 24 gemischt: alle Werte wie erwartet) und gegen das
abweichende ingwa-Schema.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>