summaryrefslogtreecommitdiff
path: root/db/migrate/20160328115649_migrate_new_notification_setting.rb
blob: 3c81b2c37bfe558724b4663f3fdbdf585874cc3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# This migration will create one row of NotificationSetting for each Member row
# It can take long time on big instances.
#
# This migration can be done online but with following effects:
# - during migration some users will receive notifications based on their global settings (project/group settings will be ignored)
# - its possible to get duplicate records for notification settings since we don't create uniq index yet
#
class MigrateNewNotificationSetting < ActiveRecord::Migration
  def up
    timestamp = Time.now.strftime('%F %T')
    execute "INSERT INTO notification_settings ( user_id, source_id, source_type, level, created_at, updated_at ) SELECT user_id, source_id, source_type, notification_level, '#{timestamp}', '#{timestamp}' FROM members WHERE user_id IS NOT NULL"
  end

  def down
    execute "DELETE FROM notification_settings"
  end
end