Как выполнить откат к началу и воссоздать / перестроить новые миграции - PullRequest
10 голосов
/ 10 февраля 2010

Итак, это мой первый настоящий проект Ruby on Rails. Я усвоил урок - я не внес все изменения с помощью миграций, поэтому все немного запутано.

Какой лучший способ начать заново с новыми файлами миграции, перестроить схему и т. Д.? Мой проект слишком далеко продвинулся, чтобы перестроить весь проект, но недостаточно далеко от того места, где я забочусь о потере миграций, которые у меня есть до сих пор. Я также не против потерять данные в базе данных. Я пытался откатиться к началу, но кое-что не получается.

Я знаю, что это плохое состояние, но урок выучен.

EDIT: Я просто удалил все файлы миграции и перестроил файл схемы с помощью db: schema: dump. Я предполагаю, что это приводит меня в чистое состояние с моей существующей базой данных, только что потерянные миграции.

Ответы [ 3 ]

9 голосов
/ 10 февраля 2010

если вы хотите перенести несколько шагов назад, вы можете

rake db:rollback STEP=2

Эта команда перенесет вашу базу данных на 2 миграции назад. Если вам нужна дополнительная помощь с командами rake, введите jus

rake -T

Эта команда выведет список всех задач, которые у вас есть в приложении.

7 голосов
/ 10 февраля 2010

Если вы не обеспокоены потерей данных, выполните

rake db:purge

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

5 голосов
/ 10 февраля 2010

Ваш schema.rb файл должен содержать фактическую схему из вашей базы данных. Вы можете использовать его в качестве отправной точки для создания ваших миграций. Вы можете создать новую миграцию для каждой таблицы с параметром :force => true, чтобы перезаписать старую таблицу. После этого вы можете просто удалить старые миграции (вам, вероятно, также необходимо удалить их записи из таблицы schema_migrations).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...