66 lines
1.9 KiB
SQL
66 lines
1.9 KiB
SQL
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;
|