]> git.openstreetmap.org Git - rails.git/blobdiff - db/migrate/20161002153425_add_join_table_between_users_and_diary_entries.rb
Merge remote-tracking branch 'upstream/pull/1964'
[rails.git] / db / migrate / 20161002153425_add_join_table_between_users_and_diary_entries.rb
index cd8414ee7ece4518ccb5b24497910cc409802e50..088b9d28bb3b718c8e46ebc4666331a5d95207b0 100644 (file)
@@ -1,23 +1,19 @@
-class AddJoinTableBetweenUsersAndDiaryEntries < ActiveRecord::Migration
-  def change
-    create_table :diary_entries_subscribers, :id => false do |t|
-      t.column :subscriber_id, :bigint, :null => false
+require "migrate"
+
+class AddJoinTableBetweenUsersAndDiaryEntries < ActiveRecord::Migration[5.0]
+  def self.up
+    create_table :diary_entry_subscriptions, :id => false do |t|
+      t.column :user_id, :bigint, :null => false
       t.column :diary_entry_id, :bigint, :null => false
     end
 
-    add_foreign_key :diary_entries_subscribers, :users, :column => :subscriber_id, :name => "diary_entries_subscribers_subscriber_id_fkey"
-    add_foreign_key :diary_entries_subscribers, :diary_entries, :column => :diary_entry_id, :name => "diary_entries_subscribers_changeset_id_fkey"
-
-    add_index :diary_entries_subscribers, [:subscriber_id, :diary_entry_id], :unique => true, :name => "index_diary_subscribers_on_subscriber_id_and_diary_id"
-    add_index :diary_entries_subscribers, [:diary_entry_id]
-  end
-
-  def up
-    DiaryEntry.find_each do |diary_entry|
-      diary_entry.subscribers << diary_entry.user unless diary_entry.subscribers.exists?(diary_entry.user.id)
-    end
+    add_primary_key :diary_entry_subscriptions, [:user_id, :diary_entry_id]
+    add_index :diary_entry_subscriptions, [:diary_entry_id]
+    add_foreign_key :diary_entry_subscriptions, :diary_entries, :name => "diary_entry_subscriptions_diary_entry_id_fkey"
+    add_foreign_key :diary_entry_subscriptions, :users, :name => "diary_entry_subscriptions_user_id_fkey"
   end
 
-  def down
+  def self.down
+    drop_table :diary_entry_subscriptions
   end
 end