Как правильно написать команду миграции

118
15

Я хотел бы добавить поле массива в таблицу. Обычно я должен был сделать это при первом создании таблицы:

t.string :names, array: true, default: []

Теперь, когда я уже выполнил миграцию, не могли бы вы предоставить мне команду переноса, чтобы добавить это поле в мою таблицу рецептов?

Благодарю.

спросил(а) 2021-01-25T18:07:34+03:00 5 месяцев назад
1
Решение
64

Поскольку вы уже выполнили миграцию, это лучший способ создать новую миграцию, чтобы добавить новый столбец в таблицу, вместо повторного запуска существующей миграции, чтобы избежать проблем с другими разработчиками (хотя это может и не быть ваша забота прямо сейчас):

rails g migration add_names_to_recipes names:string

Найдите вновь созданную миграцию и добавьте следующее в соответствующий столбец:

class AddNamesToRecipes < ActiveRecord::Migration
def change
add_column :recipes, :names, :string, array: true
end
end

Наконец, запустите rake db:migrate

ответил(а) 2021-01-25T18:07:34+03:00 5 месяцев назад
63

add_column :names, array: true, default: []

ответил(а) 2021-01-25T18:07:34+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема