Highlights
Reliability release focused on foreign-key-safe migrations.
Breaking / behavioral
- The migrator now exits non-zero when a migration completes only partially and prints a reconciliation summary. Scripts that wrapped this tool and relied on a zero exit code should be reviewed.
Fixed
- Tables are migrated in foreign-key dependency order via a priority map, instead of arbitrary order.
- Per-row savepoints isolate a failed
INSERTso one bad row no longer aborts the surrounding transaction. - JSON-typed SQLite values are normalized through
json.dumps, fixing type round-trip errors on JSON columns. - Orphaned attachment rows referencing deleted chats or knowledge bases are skipped and reported rather than failing the run.
Added
- Regression test suite (48 tests) covering migration ordering, SQLite integrity, and value normalization.
- PyPI publishing now runs from CI via OpenID Connect trusted publishing, so no API token is stored in the repository.
Install
pip install --upgrade open-webui-postgres-migration
Thanks to @cuppett for the FK-safe per-row verification work in #28, and @FedorenkoKirill + @motriys98-alt on #27 and #26!