lemmy/migrations/2024-09-20-134838_add_federation_vote_rejection/up.sql

40 lines
1.2 KiB
MySQL
Raw Normal View History

-- This removes the simple enable_downvotes setting, in favor of an
-- expanded federation mode type for post/comment up/downvotes.
-- Create the federation mode enum
CREATE TYPE federation_mode_enum AS ENUM (
'All',
'Local',
'Disable'
);
-- Add the new columns
ALTER TABLE local_site
ADD COLUMN post_upvotes federation_mode_enum DEFAULT 'All'::federation_mode_enum NOT NULL,
ADD COLUMN post_downvotes federation_mode_enum DEFAULT 'All'::federation_mode_enum NOT NULL,
ADD COLUMN comment_upvotes federation_mode_enum DEFAULT 'All'::federation_mode_enum NOT NULL,
ADD COLUMN comment_downvotes federation_mode_enum DEFAULT 'All'::federation_mode_enum NOT NULL;
-- Copy over the enable_downvotes into the post and comment downvote settings
WITH subquery AS (
SELECT
enable_downvotes,
CASE WHEN enable_downvotes = TRUE THEN
'All'::federation_mode_enum
ELSE
'Disable'::federation_mode_enum
END
FROM
local_site)
UPDATE
local_site
SET
post_downvotes = subquery.case,
comment_downvotes = subquery.case
FROM
subquery;
-- Drop the enable_downvotes column
ALTER TABLE local_site
DROP COLUMN enable_downvotes;