-- Real-world sources publish multiple chapters at the same number: -- different uploaders, translator notices/farewells, paid-vs-free -- re-uploads, and our own users can legitimately have two versions of -- "Ch.52" with different scanlations. The (manga_id, number) UNIQUE -- from 0001_init silently collapses all of those into a single row via -- ON CONFLICT, dropping data. Drop the constraint and lean on the -- chapter id (UUID) as the only chapter identity going forward. ALTER TABLE chapters DROP CONSTRAINT chapters_manga_id_number_key; -- The UNIQUE was also our only index on (manga_id, number) since -- 0007 dropped the redundant explicit one. Chapter list pages -- ORDER BY number ASC and the manga page is a hot read path, so put -- the index back without the uniqueness. Secondary sort by created_at -- so duplicate-numbered chapters have a stable order in lists and -- prev/next navigation. CREATE INDEX chapters_manga_id_number_idx ON chapters (manga_id, number, created_at);