Initial commit
This commit is contained in:
42
db/migrate/20190204063948_add_account_to_projects.rb
Normal file
42
db/migrate/20190204063948_add_account_to_projects.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
class AddAccountToProjects < ActiveRecord::Migration[5.2]
|
||||
def up
|
||||
add_reference :projects, :account, foreign_key: true
|
||||
migrate_data_up
|
||||
remove_reference :projects, :user
|
||||
end
|
||||
|
||||
def down
|
||||
add_reference :projects, :user, foreign_key: true
|
||||
migrate_data_down
|
||||
remove_reference :projects, :account
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
class Project < ActiveRecord::Base
|
||||
belongs_to :account
|
||||
belongs_to :user
|
||||
end
|
||||
|
||||
def migrate_data_up
|
||||
say "Setting Project#account.."
|
||||
|
||||
Project.reset_column_information
|
||||
Project.find_each do |project|
|
||||
project.update!(account: project.user.account)
|
||||
end
|
||||
|
||||
say "Done."
|
||||
end
|
||||
|
||||
def migrate_data_down
|
||||
say "Setting Project#user.."
|
||||
|
||||
Project.reset_column_information
|
||||
Project.find_each do |project|
|
||||
project.update!(user: project.account.users.first)
|
||||
end
|
||||
|
||||
say "Done."
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user