mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
45 lines
2.1 KiB
SQL
Executable File
45 lines
2.1 KiB
SQL
Executable File
-- Rename heritage_timeline_items to timeline_items and add heritage column
|
|
-- This migration supports the refactoring of HeritageTimelineItem to TimelineItem
|
|
|
|
-- Check if we need to rename the table
|
|
DO $$
|
|
BEGIN
|
|
-- Only rename if heritage_timeline_items exists and timeline_items doesn't
|
|
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'heritage_timeline_items' AND table_schema = 'public')
|
|
AND NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'timeline_items' AND table_schema = 'public') THEN
|
|
-- Rename table
|
|
ALTER TABLE heritage_timeline_items RENAME TO timeline_items;
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Add heritage column if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'timeline_items' AND column_name = 'heritage' AND table_schema = 'public') THEN
|
|
ALTER TABLE timeline_items ADD COLUMN heritage BOOLEAN NOT NULL DEFAULT true;
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Rename index if needed
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'timeline_items' AND indexname = 'idx_timeline_order') THEN
|
|
DROP INDEX IF EXISTS idx_timeline_order;
|
|
END IF;
|
|
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'timeline_items' AND indexname = 'idx_timeline_items_order') THEN
|
|
CREATE INDEX IF NOT EXISTS idx_timeline_items_order ON timeline_items("order");
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Update trigger name if needed
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (SELECT 1 FROM information_schema.triggers WHERE trigger_name = 'update_heritage_timeline_items_updated_at' AND event_object_table = 'timeline_items') THEN
|
|
DROP TRIGGER IF EXISTS update_heritage_timeline_items_updated_at ON timeline_items;
|
|
END IF;
|
|
IF NOT EXISTS (SELECT 1 FROM information_schema.triggers WHERE trigger_name = 'update_timeline_items_updated_at' AND event_object_table = 'timeline_items') THEN
|
|
CREATE TRIGGER update_timeline_items_updated_at BEFORE UPDATE ON timeline_items
|
|
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
END IF;
|
|
END $$;
|