mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 11:53:44 +08:00
30990006a9
This reduces chances of errors where consumers of strings mutate inputs and reduces memory usage of the app. Test suite passes now, but there may be some stuff left, so we will run a few sites on a branch prior to merging
38 lines
1.8 KiB
Ruby
38 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class RenamePostNotices < ActiveRecord::Migration[5.2]
|
|
def up
|
|
add_index :post_custom_fields, :post_id, unique: true, name: "index_post_custom_fields_on_notice_type", where: "name = 'notice_type'"
|
|
add_index :post_custom_fields, :post_id, unique: true, name: "index_post_custom_fields_on_notice_args", where: "name = 'notice_args'"
|
|
|
|
# Split site setting `min_post_notice_tl` into `new_user_notice_tl` and `returning_user_notice_tl`.
|
|
execute <<~SQL
|
|
INSERT INTO site_settings(name, data_type, value, created_at, updated_at)
|
|
SELECT 'new_user_notice_tl', data_type, value, created_at, updated_at
|
|
FROM site_settings WHERE name = 'min_post_notice_tl'
|
|
UNION
|
|
SELECT 'returning_user_notice_tl', data_type, value, created_at, updated_at
|
|
FROM site_settings WHERE name = 'min_post_notice_tl'
|
|
SQL
|
|
execute "DELETE FROM site_settings WHERE name = 'min_post_notice_tl'"
|
|
|
|
# Rename custom fields to match new naming scheme.
|
|
execute "UPDATE post_custom_fields SET name = 'notice_type', value = 'new_user' WHERE name = 'post_notice_type' AND value = 'first'"
|
|
execute "UPDATE post_custom_fields SET name = 'notice_type', value = 'returning_user' WHERE name = 'post_notice_type' AND value = 'returning'"
|
|
execute "UPDATE post_custom_fields SET name = 'notice_args' WHERE name = 'post_notice_time'"
|
|
|
|
# Delete all notices for bots, staged and anonymous users.
|
|
execute <<~SQL
|
|
DELETE FROM user_custom_fields
|
|
WHERE (name = 'notice_type' OR name = 'notice_args')
|
|
AND user_id IN (SELECT id FROM users WHERE id <= 0 OR staged = true
|
|
UNION
|
|
SELECT user_id FROM user_custom_fields ucf WHERE name = 'master_id')
|
|
SQL
|
|
end
|
|
|
|
def down
|
|
raise ActiveRecord::IrreversibleMigration
|
|
end
|
|
end
|