47 lines
1.1 KiB
Ruby
47 lines
1.1 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 value ELSE NULL END
|
||
|
)::boolean AS require_topic_approval,
|
||
|
MAX(
|
||
|
CASE WHEN (name = 'require_reply_approval')
|
||
|
THEN value ELSE NULL END
|
||
|
)::boolean AS require_reply_approval,
|
||
|
MAX(
|
||
|
CASE WHEN (name = 'num_auto_bump_daily')
|
||
|
THEN 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
|