47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class PopulateCategorySettings < ActiveRecord::Migration[7.0]
|
|
def up
|
|
execute(<<~SQL)
|
|
INSERT INTO
|
|
category_settings(
|
|
category_id,
|
|
require_topic_approval,
|
|
require_reply_approval,
|
|
num_auto_bump_daily,
|
|
created_at,
|
|
updated_at
|
|
)
|
|
SELECT
|
|
category_id,
|
|
MAX(
|
|
CASE WHEN (name = 'require_topic_approval')
|
|
THEN NULLIF(value, '') ELSE NULL END
|
|
)::boolean AS require_topic_approval,
|
|
MAX(
|
|
CASE WHEN (name = 'require_reply_approval')
|
|
THEN NULLIF(value, '') ELSE NULL END
|
|
)::boolean AS require_reply_approval,
|
|
MAX(
|
|
CASE WHEN (name = 'num_auto_bump_daily')
|
|
THEN NULLIF(value, '') ELSE NULL END
|
|
)::integer AS num_auto_bump_daily,
|
|
NOW() AS created_at,
|
|
NOW() AS updated_at
|
|
FROM category_custom_fields
|
|
WHERE name IN (
|
|
'require_topic_approval',
|
|
'require_reply_approval',
|
|
'num_auto_bump_daily'
|
|
)
|
|
GROUP BY category_id;
|
|
SQL
|
|
end
|
|
|
|
def down
|
|
execute(<<~SQL)
|
|
TRUNCATE category_settings;
|
|
SQL
|
|
end
|
|
end
|