-- Rollback: Remove UUID columns and revert rename -- Step 1: Drop UUID-related indexes DROP INDEX IF EXISTS idx_song_uuid; DROP INDEX IF EXISTS idx_song_soundtrack_uuid; DROP INDEX IF EXISTS idx_soundtrack_uuid; DROP INDEX IF EXISTS idx_song_soundtrack_id; DROP INDEX IF EXISTS idx_song_path; -- Step 1.5: Remove NOT NULL constraints before dropping columns (Issue #28 rollback) ALTER TABLE song ALTER COLUMN soundtrack_uuid DROP NOT NULL; ALTER TABLE song ALTER COLUMN uuid DROP NOT NULL; ALTER TABLE soundtrack ALTER COLUMN uuid DROP NOT NULL; -- Step 2: Drop UUID-related constraints ALTER TABLE song DROP CONSTRAINT IF EXISTS song_soundtrack_path_unique; ALTER TABLE song DROP CONSTRAINT IF EXISTS song_soundtrack_uuid_fkey; ALTER TABLE soundtrack DROP CONSTRAINT IF EXISTS soundtrack_uuid_unique; -- Step 3: Drop UUID columns from song table ALTER TABLE song DROP COLUMN IF EXISTS soundtrack_uuid; ALTER TABLE song DROP COLUMN IF EXISTS uuid; -- Step 4: Drop UUID column from soundtrack table ALTER TABLE soundtrack DROP COLUMN IF EXISTS uuid; -- Step 5: Drop the uuid-based primary key ALTER TABLE song DROP CONSTRAINT song_pkey; -- Step 6: Restore composite primary key on song ALTER TABLE song ADD CONSTRAINT song_pkey PRIMARY KEY (soundtrack_id, path); -- Step 7: Drop foreign key constraint ALTER TABLE song DROP CONSTRAINT IF EXISTS song_soundtrack_id_fkey; -- Step 8: Revert rename operations -- Revert song_list table references ALTER TABLE song_list RENAME COLUMN soundtrack_name TO game_name; -- Revert song table: rename soundtrack_id back to game_id ALTER TABLE song RENAME COLUMN soundtrack_id TO game_id; -- Revert columns in game table ALTER TABLE game RENAME COLUMN soundtrack_name TO game_name; -- Revert primary key sequence ALTER SEQUENCE game_id_seq RENAME TO soundtrack_id_seq; -- Revert: Rename soundtrack table back to game ALTER TABLE soundtrack RENAME TO game; -- Revert foreign key constraint ALTER TABLE song DROP CONSTRAINT IF EXISTS song_game_id_fkey; ALTER TABLE song ADD CONSTRAINT song_game_id_fkey FOREIGN KEY (game_id) REFERENCES game(id); -- Revert indexes ALTER INDEX IF EXISTS idx_soundtrack_deleted RENAME TO idx_game_deleted; ALTER INDEX IF EXISTS idx_soundtrack_hash RENAME TO idx_game_hash; ALTER INDEX IF EXISTS idx_soundtrack_path RENAME TO idx_game_path; ALTER INDEX IF EXISTS idx_soundtrack_name RENAME TO idx_game_name; ALTER INDEX IF EXISTS idx_song_soundtrack_id RENAME TO idx_song_game_id; ALTER INDEX IF EXISTS idx_song_soundtrack_id_song_name RENAME TO idx_song_game_id_song_name; ALTER INDEX IF EXISTS song_list_soundtrack_name_idx RENAME TO song_list_game_name_idx;