ALTER TABLE brand_questions ADD COLUMN IF NOT EXISTS question_text TEXT; DO $$ BEGIN IF to_regclass('public.brand_question_versions') IS NOT NULL AND EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'brand_questions' AND column_name = 'current_version_id' ) THEN EXECUTE $sql$ UPDATE brand_questions q SET question_text = COALESCE( ( SELECT v.question_text FROM brand_question_versions v WHERE v.id = q.current_version_id LIMIT 1 ), ( SELECT v.question_text FROM brand_question_versions v WHERE v.question_id = q.id ORDER BY v.version_no DESC, v.id DESC LIMIT 1 ), q.question_text, '' ) WHERE q.question_text IS NULL $sql$; ELSIF to_regclass('public.brand_question_versions') IS NOT NULL THEN EXECUTE $sql$ UPDATE brand_questions q SET question_text = COALESCE( ( SELECT v.question_text FROM brand_question_versions v WHERE v.question_id = q.id ORDER BY v.version_no DESC, v.id DESC LIMIT 1 ), q.question_text, '' ) WHERE q.question_text IS NULL $sql$; END IF; END $$; UPDATE brand_questions SET question_text = '' WHERE question_text IS NULL; ALTER TABLE brand_questions ALTER COLUMN question_text SET NOT NULL; ALTER TABLE brand_questions DROP COLUMN IF EXISTS current_version_id; DROP TABLE IF EXISTS brand_question_versions;