Ответ 1
Нет необходимости. Вы можете сделать
Предполагая, что TableName является пользователем
rails g migration AddColumnsToUser col1:integer col2:integer .. etc.
Я знаю, как добавить один столбец в существующую таблицу. Теперь мне нужно добавить много столбцов в существующую таблицу. Есть ли более короткий путь для:
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 столбцов одного и того же типа, автосоздание, его код является хорошей идеей.
Просто создайте перенос и сгенерируйте эти столбцы. i.e.:
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