Rails - Add a migration to populate previous table column

This week, I created a new Rails migration to add a the new column: short_sha in the imports table:

class AddShortSha < ActiveRecord::Migration[6.0]
  def change
    add_column :imports, :short_sha, :string
  end
end

This new short_sha value will be automatically calculate for new Imports, but what about previous one? Rails allow us to add some method to also update the previous Imports as part of the migration:

class AddShortSha < ActiveRecord::Migration[6.0]
  def change
    add_column :imports, :short_sha, :string
    Import.all.each(&:calculate_short_sha)
  end
end

Easy and great Rails functionality 🍻