Add option to be notified when a followed user posts (#13546)
* Add bell button Fix #4890 * Remove duplicate type from post-deployment migration * Fix legacy class type mappings * Improve query performance with better index * Fix validation * Remove redundant index from notificationslocal
parent
75e4bd9413
commit
974b1b79ce
42 changed files with 324 additions and 106 deletions
@ -0,0 +1,19 @@ |
||||
require Rails.root.join('lib', 'mastodon', 'migration_helpers') |
||||
|
||||
class AddNotifyToFollows < ActiveRecord::Migration[5.1] |
||||
include Mastodon::MigrationHelpers |
||||
|
||||
disable_ddl_transaction! |
||||
|
||||
def up |
||||
safety_assured do |
||||
add_column_with_default :follows, :notify, :boolean, default: false, allow_null: false |
||||
add_column_with_default :follow_requests, :notify, :boolean, default: false, allow_null: false |
||||
end |
||||
end |
||||
|
||||
def down |
||||
remove_column :follows, :notify |
||||
remove_column :follow_requests, :notify |
||||
end |
||||
end |
@ -0,0 +1,5 @@ |
||||
class AddTypeToNotifications < ActiveRecord::Migration[5.2] |
||||
def change |
||||
add_column :notifications, :type, :string |
||||
end |
||||
end |
@ -0,0 +1,7 @@ |
||||
class AddIndexNotificationsOnType < ActiveRecord::Migration[5.2] |
||||
disable_ddl_transaction! |
||||
|
||||
def change |
||||
add_index :notifications, [:account_id, :id, :type], order: { id: :desc }, algorithm: :concurrently |
||||
end |
||||
end |
@ -0,0 +1,22 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class MigrateNotificationsType < ActiveRecord::Migration[5.2] |
||||
disable_ddl_transaction! |
||||
|
||||
TYPES_TO_MIGRATE = { |
||||
'Mention' => :mention, |
||||
'Status' => :reblog, |
||||
'Follow' => :follow, |
||||
'FollowRequest' => :follow_request, |
||||
'Favourite' => :favourite, |
||||
'Poll' => :poll, |
||||
}.freeze |
||||
|
||||
def up |
||||
TYPES_TO_MIGRATE.each_pair do |activity_type, type| |
||||
Notification.where(activity_type: activity_type, type: nil).in_batches.update_all(type: type) |
||||
end |
||||
end |
||||
|
||||
def down; end |
||||
end |
@ -0,0 +1,15 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class RemoveIndexNotificationsOnAccountActivity < ActiveRecord::Migration[5.2] |
||||
disable_ddl_transaction! |
||||
|
||||
def up |
||||
remove_index :notifications, name: :account_activity |
||||
remove_index :notifications, name: :index_notifications_on_account_id_and_id |
||||
end |
||||
|
||||
def down |
||||
add_index :notifications, [:account_id, :activity_id, :activity_type], unique: true, name: 'account_activity', algorithm: :concurrently |
||||
add_index :notifications, [:account_id, :id], order: { id: :desc }, algorithm: :concurrently |
||||
end |
||||
end |
Loading…
Reference in new issue