Ask A Question

Notifications

You’re not receiving notifications from this thread.

Using migrations to migrate data from one table into another

Shairyar Baig asked in Rails

I have two models user and account linked with each other as following

account.rb
belongs_to :user

user.rb
has_many :accounts

I want to move the data from column name in users table into column name in accounts table

I think the following should do the job but my question is if there is a better way of doing this inside a migration file considering if there are thousands of records?

Account.find_each do |account|
      if account.user.present?
        account.update_columns(name: account.user.name, xyz: account.user.xyz)
      end
end

Note: Once this migration will run I will remove the column user_id in accounts table removing the relationship between the two modals.

Reply
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 76,990+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more. Icons by Icons8

    © 2023 GoRails, LLC. All rights reserved.