Как откат к началу и воссозданию/восстановлению новых миграций

Итак, это мой первый настоящий проект 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

Он должен просто отбросить вашу базу данных