Как удалить файлы миграции в Rails 3 - PullRequest
102 голосов
/ 06 октября 2010

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

Кроме того, я должен сделать db:reset или db:drop, если я удалю / удалю миграцию

Ответы [ 8 ]

139 голосов
/ 06 октября 2010

Я обычно:

  1. Выполните rake db:migrate VERSION=XXX во всех средах до версии, которую я хочу удалить.
  2. Удалить файл миграции вручную.
  3. Если есть ожидающие миграции (т. Е. Удаленная мной миграция была не последней), я просто снова выполняю новый rake db:migrate.

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

Еще один замечательный справочник по миграции: http://guides.rubyonrails.org/migrations.html

65 голосов
/ 20 апреля 2013

Другой способ удалить миграцию:

$ rails d migration SameMigrationNameAsUsedToGenerate

Используйте его до выполнения rake db:migrate, потому что изменения в базе данных останутся навсегда :) - или удалите изменения вручную

18 голосов
/ 12 марта 2014

Запустите следующие команды из домашнего каталога приложения:

  1. rake db:migrate:down VERSION="20140311142212" (здесь версия - это временная метка, добавленная рельсами при создании миграции. Это действие вернет изменения БД из-за этой миграции)

  2. Run "rails destroy migration migration_name" (имя-миграции используется при создании миграции. Чтобы получить его, удалите « timestamp_ » из имени файла миграции)

9 голосов
/ 28 августа 2014

Мы также можем уменьшить миграцию как

rake db:migrate:down VERSION=versionnumber

См Rubyonrailsguide

8 голосов
/ 29 марта 2013

Мы можем использовать,

$ rails d migration table_name  

, который удалит миграцию.

2 голосов
/ 21 февраля 2013

Иногда я обнаруживал, что удаляю файл миграции, а затем удаляю соответствующую запись в таблице schema_migrations из базы данных. Не красиво, но это работает.

1 голос
/ 16 июля 2013

Посмотрите на 4.1 Откат

http://guides.rubyonrails.org/migrations.html

$ рейк дБ: откат

0 голосов
/ 20 мая 2015

У меня была такая же проблема:

  1. rails d миграции fuu - это удалило миграцию с последней отметкой времени
  2. rails d миграцииfuu - это удалило другую миграцию
  3. используйте git status, чтобы проверить, что больше нет неотслеживаемых файлов
  4. rails g миграции fuu

Это исправило это для меня

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