X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/05ad0a4f7d91c93ef581e2e6372c06c234dc728f..443080d7b05b5e2cc3310699f5e9d5edde010aca:/db/migrate/20161002153425_add_join_table_between_users_and_diary_entries.rb diff --git a/db/migrate/20161002153425_add_join_table_between_users_and_diary_entries.rb b/db/migrate/20161002153425_add_join_table_between_users_and_diary_entries.rb new file mode 100644 index 000000000..cd8414ee7 --- /dev/null +++ b/db/migrate/20161002153425_add_join_table_between_users_and_diary_entries.rb @@ -0,0 +1,23 @@ +class AddJoinTableBetweenUsersAndDiaryEntries < ActiveRecord::Migration + def change + create_table :diary_entries_subscribers, :id => false do |t| + t.column :subscriber_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 + end + + def down + end +end