lemmy/migrations/2022-12-05-110642_registration_mode/up.sql

41 lines
976 B
MySQL
Raw Normal View History

-- create enum for registration modes
CREATE TYPE registration_mode_enum AS enum (
'closed',
'require_application',
'open'
);
-- use this enum for registration mode setting
ALTER TABLE local_site
ADD COLUMN registration_mode registration_mode_enum NOT NULL DEFAULT 'require_application';
-- generate registration mode value from previous settings
WITH subquery AS (
SELECT
open_registration,
require_application,
CASE WHEN open_registration = FALSE THEN
'closed'::registration_mode_enum
WHEN open_registration = TRUE
AND require_application = TRUE THEN
'require_application'
ELSE
'open'
END
FROM
local_site)
UPDATE
local_site
SET
registration_mode = subquery.case
FROM
subquery;
-- drop old registration settings
ALTER TABLE local_site
DROP COLUMN open_registration;
ALTER TABLE local_site
DROP COLUMN require_application;