2017-01-04 10 views
0

Изображение Я создал миграцию на развитие рельсов, затем я нажал на Heroku;Rails уничтожает миграцию/модель на Heroku

rails g migration add_smth_to_payments smth:string 
rake db:migrate 
git add -A 
git commit -am "migration smth to payments" 
git push heroku master 

Затем я захотел уничтожить эту миграцию снова, начиная с разработки, затем надавить на Heroku;

rake db:rollback 
rails d migration add_smth_to_payments 
git add -A 
git commit -am "destroy migration smth to payments" 
git push heroku master 

Теперь мой вопрос, после разрушения миграции (может быть модель, а), это Heroku удалить эту миграцию из таблицы платежей? Я спрашиваю, потому что уничтожение занимает развитие места

Спасибо

ответ

1

После того, как миграция была запущена, сам файл миграция не имеет отношения. Вы можете удалить его, отредактировать, переименовать (пока префикс timestamp не останется в покое), и ничего не произойдет с базой данных. Фактически, многие люди периодически удаляют старые миграции, чтобы избежать загромождения db/migrate с неуместным шумом.

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

Все это относится к продукции/Heroku, разработка и где-либо еще, что вы db:migrate.

+2

Чтобы добавить, обратимые миграции можно отбросить назад (* до * вы удаляете миграцию и нажимаете на Heroku), запустив 'heroku run rake db: rollback'. Если вы уже запустили «rails d migration» и нажали результат на Heroku, это приведет к откату * неправильной миграции. – meagar

 Смежные вопросы

  • Нет связанных вопросов^_^