テーブルが大きすぎない場合、最も簡単な方法は、移行中に数行のRubyコードでデータをコピーすることです。これには、既存の関連付けと検証を使用する利点があり、コードはRuby開発者にとって読みやすく、理解しやすいものです。
巨大なテーブルでは、はるかに高速であるため、プレーンSQLで実行することをお勧めします。
MyTable
とMyNewTable
の両方のモデルがあるとします。
def up
create_table :my_new_tables do |t|
t.string :user
t.string :guest
t.references :my_tables, index: true
t.timestamps null: false
end
MyNewTable.reset_column_information
MyTable.find_each do |table|
MyNewTable.create(user: table.user, guest: table.guest, my_table: table)
end
remove_column :my_tables, :guest
remove_column :my_tables, :user
end
私はあなたの質問を理解することができません。 –
JFYIでは、「データ」はすでに複数です。対応する単数形は「データム」です。 –