好ましい方法と既存のテーブルへの一意の列を探しています。また、テーブルに一意のインデックスを追加したいと考えています。ただし、インデックスを追加する前に、インデックスの作成が失敗しないように、列にデータを追加する必要があります。
状況は次のとおりです。
class AddUsernameToUsers < ActiveRecord::Migration
def change
add_column :users, :username, :string, null: false
# Need Data here! And don't want to do something like this:
# User.each { |u| u.update_attribute(:username, u.email }
add_index :users, :username, unique: true
end
end
ruby コードを使用してデータを入力することが可能であることは知っています。その例はたくさんありますが、それはあまり良い考えではないことを読み続けています。上記のようなもの以外にオプションはありますか?