a3897df0ab
Issue #155 removed the sqlx 0.8 rebuild workarounds by editing migrations 0007, 0014 and 0021 in place. Editing an applied migration changes its checksum, and `migrate()` refuses to run when one no longer matches what `_sqlx_migrations` recorded, so the daemon exited on startup against any database that had already applied them — production included. The sqlx 0.9 bump is the fix and survives: a new migration can carry `-- no-transaction` so `PRAGMA foreign_keys = OFF` holds and a table rebuild stops cascade-deleting its children. Only the retroactive cleanup of migrations that already ran is reverted, along with #153's `CHECK (title <> '')`, which rode on the 0021 edit and needs a migration of its own rather than a rewrite of history. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
12 lines
739 B
SQL
12 lines
739 B
SQL
-- #153. `episodes.title` accepted the empty string, which TMDB sends for an
|
|
-- unaired episode it has not named yet. Empty titles leaked into §9.2's
|
|
-- search haystack, §7.4 filenames and the compat shim as if they were real
|
|
-- text. Rows already carrying `''` take the same "TBA" placeholder the TMDB
|
|
-- boundary now substitutes — #121's guarded update replaces it once TMDB
|
|
-- fills the title in.
|
|
--
|
|
-- A hard CHECK (title <> '') would need a table rebuild with foreign_keys
|
|
-- off, which sqlx 0.8's migrator cannot run (it always wraps a migration in
|
|
-- a transaction, where that pragma is a no-op); enforcement lives in code.
|
|
UPDATE episodes SET title = 'TBA', updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE title = '';
|