既存のテーブルに1つの列を追加する方法を知っています。次に、既存のテーブルに多くの列を追加する必要があります。短い方法はありますか:
add_col1_col2_col3_col4_.._coln_to_tables col1:integer col2:integer etc...
追加する必要があるすべての追加列に対して上記を行う必要がありますか?
必要ありません。できるよ
TableNameがユーザーであると仮定します
Rails g migration AddColumnsToUser col1:integer col2:integer .. etc.
ActiveRecord:Migrations には、データベースを操作するために使用できるすべてのコマンドをリストした優れたリソースがあります。次の方法でもタスクを実行できます。
Rails g migration AddMoreColumnsToModel
次に、移行ファイルを開いて以下を配置します。
def change
add_column :table, :new_column, :type
# add as many columns as you need
end
同じタイプの文字列が100個自動作成されるMaxdの提案を実行したい場合は、彼のコードをお勧めします。
移行を作成してこれらの列を生成するだけです:
class ChangeTables < ActiveRecord::Migration
def change
change_table :tables do |t|
100.times do |i|
t.integer :"column_#{i}"
end
end
end
end
上記の回答に似ていますが、目的を理解するためには、命名規則の下に希望があります。
Rails g migration add_first_column_and_second_column_to_model first_column:string second_column:string
この移行ファイルはループで実行できます。しかし、あなたは本当にこれをやりたいですか?そのような重いモデルを作成してすべてを保持するのは正しくありません。
new model
およびtable
でcolumns
を作成するコマンド:
Rails g model ModelName col_name1:string col_name2:integer col_name3:text ...
既存のテーブルの下にcolumns
を追加するコマンド:
Rails g migration AddColumnToModelName col_name4:string col_name5:integer ...
最後に、コマンドでmigration
を実行します。
rake db:migrate