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