Как откат к началу и воссозданию/восстановлению новых миграций
Итак, это мой первый настоящий проект Ruby on Rails. Я выучил свой урок - я не делал никаких изменений с помощью миграции, поэтому все немного испортилось.
Какой лучший способ начать работу с новыми файлами миграции и перестроить схему и т.д.? Мой проект слишком далек, чтобы перестроить весь проект, но недостаточно далеко, чтобы я мог потерять миграции, которые у меня есть до сих пор. Я также не против потери данных в базе данных. Я пытался откат к началу, но некоторые из них терпят неудачу.
Я знаю, что это плохое состояние, но урок извлечен.
EDIT:
Я просто удалил все файлы миграции и перестроил файл схемы с помощью db: schema: dump.
Я предполагаю, что это ставит меня в чистое состояние с моей существующей базой данных, просто потерял миграцию.
Ответы
Ответ 1
Ваш файл schema.rb
должен содержать фактическую схему из вашей базы данных. Вы можете использовать его в качестве отправной точки для создания ваших миграций. Вы можете создать новую миграцию для каждой таблицы с параметром :force => true
, чтобы перезаписать старую таблицу. После этого вы можете просто удалить старые миграции (вам, вероятно, также потребуется удалить их записи из таблицы schema_migrations).
Другими параметрами были бы просто обновление старых миграций в соответствии с текущей схемой.
Ответ 2
если вы хотите перенести некоторые шаги назад, вы можете
rake db:rollback STEP=2
Эта команда перенесет миграцию вашей базы данных 2.
Если вам нужна дополнительная помощь с командами рейка, тип jus
rake -T
В этой команде будут перечислены все задачи, которые у вас есть в вашем приложении.
Ответ 3
Если вы не беспокоитесь о потере данных, тогда
rake db:purge
Он должен просто отбросить вашу базу данных