mirror of
https://github.com/discourse/discourse.git
synced 2025-06-06 21:24:45 +08:00
PERF: move 3 more option columns out of the user table
This commit is contained in:
@ -32,9 +32,9 @@ duration = Rails.env.production? ? 60 : 0
|
||||
if User.exec_sql("SELECT 1 FROM schema_migration_details
|
||||
WHERE EXISTS(
|
||||
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_name = 'users' AND column_name = 'enable_quoting'
|
||||
WHERE table_name = 'users' AND column_name = 'last_redirected_to_top_at'
|
||||
) AND
|
||||
name = 'AllowDefaultsOnUsersTable' AND
|
||||
name = 'MoveTrackingOptionsToUserOptions' AND
|
||||
created_at < (current_timestamp at time zone 'UTC' - interval '#{duration} minutes')
|
||||
").to_a.length > 0
|
||||
|
||||
@ -54,7 +54,10 @@ if User.exec_sql("SELECT 1 FROM schema_migration_details
|
||||
edit_history_public
|
||||
automatically_unpin_topics
|
||||
digest_after_days
|
||||
].each do |column|
|
||||
auto_track_topics_after_msecs
|
||||
new_topic_duration_minutes
|
||||
last_redirected_to_top_at
|
||||
].each do |column|
|
||||
User.exec_sql("ALTER TABLE users DROP column IF EXISTS #{column}")
|
||||
end
|
||||
|
||||
|
@ -0,0 +1,16 @@
|
||||
class MoveTrackingOptionsToUserOptions < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :user_options, :auto_track_topics_after_msecs, :integer
|
||||
add_column :user_options, :new_topic_duration_minutes, :integer
|
||||
add_column :user_options, :last_redirected_to_top_at, :datetime
|
||||
|
||||
execute <<SQL
|
||||
UPDATE user_options
|
||||
SET auto_track_topics_after_msecs = users.auto_track_topics_after_msecs,
|
||||
new_topic_duration_minutes = users.new_topic_duration_minutes,
|
||||
last_redirected_to_top_at = users.last_redirected_to_top_at
|
||||
FROM users
|
||||
WHERE users.id = user_options.user_id
|
||||
SQL
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user