Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I4806c58aa0a17f504c9312723ad770166a6a6964
33 lines
930 B
SQL
33 lines
930 B
SQL
-- Drop redundant indexes (already covered by UNIQUE constraints)
|
|
DROP INDEX IF EXISTS idx_users_username;
|
|
|
|
DROP INDEX IF EXISTS idx_user_libraries_user_id;
|
|
|
|
-- Add missing indexes for comments table
|
|
CREATE INDEX IF NOT EXISTS idx_comments_media ON comments (media_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_comments_parent ON comments (parent_comment_id);
|
|
|
|
-- Remove duplicates before adding unique constraint
|
|
DELETE FROM external_metadata e1
|
|
WHERE
|
|
EXISTS (
|
|
SELECT
|
|
1
|
|
FROM
|
|
external_metadata e2
|
|
WHERE
|
|
e1.media_id = e2.media_id
|
|
AND e1.source = e2.source
|
|
AND e1.ctid < e2.ctid
|
|
);
|
|
|
|
-- Add unique constraint for external_metadata (idempotent)
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_constraint WHERE conname = 'uq_external_metadata_source'
|
|
) THEN
|
|
ALTER TABLE external_metadata ADD CONSTRAINT uq_external_metadata_source UNIQUE(media_id, source);
|
|
END IF;
|
|
END $$;
|