Rails 4: добавление нескольких столбцов в существующую таблицу

Я знаю, как добавить один столбец в существующую таблицу. Теперь мне нужно добавить много столбцов в существующую таблицу. Есть ли более короткий путь для:

add_col1_col2_col3_col4_.._coln_to_tables col1:integer col2:integer etc...

Должен ли я сделать выше для ВСЕХ дополнительных столбцов, которые мне нужно добавить?

Ответы

Ответ 1

Нет необходимости. Вы можете сделать

Предполагая, что TableName является пользователем

rails g migration AddColumnsToUser col1:integer col2:integer .. etc.

Ответ 2

Здесь хороший ресурс ActiveRecord: Migrations, в котором перечислены все команды, которые вы можете использовать для управления вашими базами данных. Вы также можете выполнить задачу следующим образом:

rails g migration AddMoreColumnsToModel

Затем откройте файл миграции и поставьте:

def change
  add_column :table, :new_column, :type
  # add as many columns as you need 
end

Если вы хотите сделать то, что предлагает Максд, имея буквально 100 столбцов одного и того же типа, автосоздание, его код является хорошей идеей.

Ответ 3

Просто создайте перенос и сгенерируйте эти столбцы. 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

Ответ 4

Этот файл миграции может быть выполнен в цикле. Но вы действительно хотите это сделать? Не похоже, чтобы создать такую ​​тяжелую модель, чтобы держать все.

Ответ 5

Подобно приведенным выше ответам, но для понимания цели надежда ниже соглашения об именах хороша.

rails g migration add_first_column_and_second_column_to_model first_column:string second_column:string

Ответ 6

для создания 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