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

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

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

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

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

10
задан 99miles 10 February 2010 в 16:07
поделиться

3 ответа

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

Другой вариант - просто обновить старые миграции в соответствии с вашей текущей схемой.

5
ответ дан 3 December 2019 в 18:33
поделиться

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

rake db:purge

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

7
ответ дан 3 December 2019 в 18:33
поделиться

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

rake db:rollback STEP=2

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

rake -T

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

9
ответ дан 3 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: