Files

32 lines
884 B
SQL

DO $$
DECLARE
target record;
BEGIN
FOR target IN
SELECT * FROM (VALUES
('student_enrollments', 'created_at'),
('student_enrollments', 'updated_at'),
('student_enrollments', 'removed_at'),
('student_groups', 'created_at'),
('student_groups', 'updated_at'),
('student_group_members', 'created_at')
) AS targets(table_name, column_name)
LOOP
IF EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = target.table_name
AND column_name = target.column_name
AND data_type = 'timestamp without time zone'
) THEN
EXECUTE format(
'ALTER TABLE %I ALTER COLUMN %I TYPE TIMESTAMPTZ(3) USING %I AT TIME ZONE ''UTC''',
target.table_name,
target.column_name,
target.column_name
);
END IF;
END LOOP;
END $$;