mirror of
https://github.com/hilman2/easy-ocpp.git
synced 2026-10-20 08:46:49 +02:00
Bestehende Installationen brachen beim Start mit dem Windows-Release-Binary ab: "migration 1 was previously applied but has been modified" – obwohl die Migration inhaltlich seit v0.2.0 unverändert ist. Ursache: .gitattributes enthielt nur "* text=auto". Zusammen mit core.autocrlf=true (Standard auf windows-latest-Runnern) checkt actions/checkout die .sql-Dateien als CRLF aus. sqlx::migrate! bettet den Dateiinhalt zur Compile-Zeit ein und bildet darüber eine SHA-384-Summe, die beim Start gegen _sqlx_migrations geprüft wird: 0001_initial.sql mit LF -> 0651a39f... 0001_initial.sql mit CRLF -> 90093a9a... Die GitHub-Windows-Builds v0.2.0 und v0.3.0 tragen die CRLF-Variante, lokal gebaute Exes und der Linux-Build die LF-Variante. Datenbanken, die mit einem LF-Binary angelegt wurden, kollidieren daher mit dem Windows-Release-ZIP. Zwei Änderungen: 1. .gitattributes erzwingt "*.sql text eol=lf". Ab jetzt erzeugen Windows- und Linux-Runner identische Prüfsummen. 2. db::repair_line_ending_checksums() hebt eine gespeicherte Prüfsumme vor dem Migrationslauf an – aber nur, wenn sie exakt der Zeilenenden-Variante desselben SQL entspricht, in beide Richtungen. Ohne diesen Schritt würde Punkt 1 jede Installation brechen, die mit dem CRLF-Binary aus dem GitHub-ZIP von v0.2.0/v0.3.0 angelegt wurde. Echte inhaltliche Abweichungen führen weiterhin zum Abbruch durch sqlx. sha2 wird dafür direkte Dependency (war bereits transitiv gelockt, die Auflösung ändert sich nicht). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
9 lines
415 B
Plaintext
9 lines
415 B
Plaintext
* text=auto
|
|
|
|
# Migrationen MÜSSEN LF behalten: sqlx::migrate! bildet eine SHA-384-Prüfsumme
|
|
# über den Dateiinhalt und vergleicht sie mit der in _sqlx_migrations
|
|
# gespeicherten. Ein CRLF-Checkout (Windows-Buildrunner) erzeugt sonst eine
|
|
# andere Prüfsumme als ein LF-Checkout (Linux) -> "migration 1 was previously
|
|
# applied but has been modified" beim Start gegen eine bestehende Datenbank.
|
|
*.sql text eol=lf
|