Удалил файл миграции.rb? Потенциальная ошибка в рельсах? - PullRequest
7 голосов
/ 21 октября 2011

Я не уверен, является ли это ошибкой или это фактически удалило файл миграции.rb.Я использовал Generate для создания следующей миграции:

$ rails generate migration add_delta_to_submissions

    invoke  active_record  
    create    db/migrate/20111020175649_add_delta_to_submissions.rb  

Затем я понял, что я не включил столбцы, поэтому я использовал СТРЕЛКУ ВВЕРХ в консоли и перезаписалс уничтожением:

$ rails destroy migration add_delta_to_submissions

    invoke  active_record  
    remove    db/migrate/20111020175649_add_delta_to_submissions.rb  

Пока все хорошо, теперь пришло время запустить миграцию с нужным мне столбцом.Здесь возникает проблема - я снова использовал СТРЕЛКУ ВВЕРХ - но только один раз - и добавил информацию о моем столбце:

$ rails destroy migration add_delta_to_submissions delta:integer

    invoke  active_record  
    remove    migration.rb  

Я понимаю, что, вероятно, НЕ должно бытьиспользуя СТРЕЛКУ ВВЕРХ для команд, таких же изменчивых, как GENERATE и DESTROY (урок!), но эта команда вернулась, заявив, что УДАЛЕНА файлigration.rb.Я даже не знал, что существует файлigration.rb, особенно такой, который не может быть так легко удален.

Для получения удовольствия я решил попытаться обмануть командную консоль, добавив в конце букву xслова миграции - и получил это сообщение:

$ rails destroy migrationx add_delta_to_submissions delta:integer

    Could not find generator migrationx.  

Итак, я думаю, что может быть ошибка с командой уничтожения рельсов.Как только он понял, что файл add_delta_to_submissions.rb больше не существует, он просто отключил его и прикрепил .rb к слову перенос (или любому слову после DESTROY).Это кажется немного опасным ....

Независимо от этого - мне любопытно узнать, не нарушил ли я каким-либо образом мою среду RAILS (rails 3.1, ruby ​​1.8.7) теперь, когда файл миграции.rb былудален.Если да - какие у меня есть варианты для исправления этой ситуации?

Заранее большое спасибо ...

Ответы [ 3 ]

2 голосов
/ 30 ноября 2012

Это также происходит, когда вы вводите несуществующее имя миграции в качестве параметра для уничтожения команды

$rails migration destroy non-existing-migration-name 

invoke    active_record
remove    migration.rb

Но я думаю, что это безвредно.

1 голос
/ 15 декабря 2011

У вас есть git в вашей системе?Сегодня произошло то же самое, и я побежал:

git diff | grep migration

В моей системе ничего не вышло.Я искал файл и до сих пор не смог найти ни один mig.rb ни в одном из моих проектов Rails 3.1.Возможно, можете игнорировать это без какого-либо вреда?

0 голосов
/ 09 января 2013

То же самое случилось со мной.

Похоже, в ActiveRecord есть файл igration.rb , и хотя вы можете расширить ActiveRecord :: Base , я не уверен, что вы действительно можете получить к ним доступфайлы откуда-то в вашей директории проекта rails.

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

...