29 lines
941 B
Ruby
29 lines
941 B
Ruby
class FixTargetOnNotification < ActiveRecord::Migration
|
|
def self.up
|
|
note_ids = execute('select id from notifications').to_a
|
|
unless note_ids.empty?
|
|
execute("UPDATE notifications " +
|
|
"SET target_type='Post' " +
|
|
"WHERE action = 'comment_on_post' OR action = 'also_commented'")
|
|
|
|
execute("UPDATE notifications " +
|
|
"SET target_type='Request' " +
|
|
"WHERE action = 'new_request' OR action = 'request_accepted'")
|
|
|
|
execute("UPDATE notifications " +
|
|
"SET target_type='Mention' " +
|
|
"WHERE action = 'mentioned'")
|
|
|
|
execute("create temporary table t1 "+
|
|
"(select notifications.id as n_id " +
|
|
"from notifications LEFT JOIN mentions "+
|
|
"ON notifications.target_id = mentions.id "+
|
|
"WHERE notifications.action = 'mentioned' AND mentions.id IS NULL)")
|
|
|
|
execute("DELETE notifications.* FROM notifications, t1 WHERE notifications.id = t1.n_id")
|
|
end
|
|
end
|
|
|
|
def self.down
|
|
end
|
|
end
|