2011-10-21 7 views
7

Nie jestem pewien, czy jest to błąd, czy faktycznie usunął plik migration.rb. Kiedyś generowania stworzyć następującą migracją:Usunięto plik migration.rb? Potencjalny błąd w szynach?

$ rails generate migration add_delta_to_submissions

invoke active_record 
    create db/migrate/20111020175649_add_delta_to_submissions.rb 

I wtedy uświadomiłem sobie, że zapomniał zawierać żadnych kolumn, więc użyłem strzałek w górę w konsoli i nadpisałeś wygenerować z zniszczyć:

$ rails destroy migration add_delta_to_submissions

invoke active_record 
    remove db/migrate/20111020175649_add_delta_to_submissions.rb 

Wszystko dobrze do tej pory, teraz nadszedł czas, aby uruchomić migrację z kolumny muszę. Oto gdzie problem przychodzi - I znowu użył strzałka w górę - ale tylko raz - i dodał moje informacje kolumna:

$ rails destroy migration add_delta_to_submissions delta:integer

invoke active_record 
    remove migration.rb 

Zdaję sobie sprawę, że powinien prawdopodobnie nie być za pomocą strzałek w górę do poleceń tak niestabilny jak GENERATE i DESTROY (lekcja się nauczyła!), ale to polecenie wróciło, stwierdzając, że USUNIĘTO plik migration.rb. Nie wiedziałem nawet, że istnieje plik migration.rb - szczególnie ten, który można tak łatwo usunąć.

dla zabawy, postanowiłem spróbować oszukać konsolę poleceń dodając x do końca migracji word list - i otrzymał tę wiadomość:

$ rails destroy migrationx add_delta_to_submissions delta:integer

Could not find generator migrationx. 

Tak, myślę, że może być błędem z poleceniem zniszczenia szyn. Kiedy zorientował się, że nie ma już pliku add_delta_to_submissions.rb, po prostu usunął go i zaimportował do pliku .rb do słowa migracja (lub dowolnego słowa po DESTROY). To wydaje się trochę niebezpieczne ...

Niezależnie od tego - jestem ciekawy, czy w jakiś sposób naruszyłem moje środowisko RAILS (rails 3.1, ruby ​​1.8.7) teraz, gdy plik migration.rb został usunięty. Jeśli tak, jakie są moje możliwości rozwiązania tej sytuacji?

Bardzo dziękuję z góry ...

+0

To samo przydarzyło mi się. Czy wiesz, co się stało? – marimaf

+1

To samo przydarzyło mi się, gdy uruchomiłem polecenie destroy, ale załączałem .rb na końcu nazwy migracji (ponieważ jestem starczy). Myślę, że to nieszkodliwe, ale mimo wszystko jest to jakiś błąd w generatorze. –

Odpowiedz

1

Czy masz git w swoim systemie? To samo stało się dzisiaj i uciekłem:

git diff | grep migration 

Nic nie wyszło w moim systemie. Szukałem pliku i nadal nie mogłem znaleźć żadnej migracja.rb w żadnym z moich projektów Rails 3.1. Prawdopodobnie można go zignorować bez szkody?

+0

Mam na myśli inne projekty i pliki Rails. Przepraszam. –

+0

Możesz edytować swój komentarz w swojej odpowiedzi. – meagar

2

Zdarza się także po wpisaniu nieistniejącą nazwę migracji jako parametr zniszczyć polecenie

$rails migration destroy non-existing-migration-name 

invoke active_record 
remove migration.rb 

Ale myślę, że to nieszkodliwe.

+0

To też mi się przydarza. –

0

To samo przydarzyło mi się.

Wygląda na to, że istnieje plik migration.rb w ActiveRecord, i chociaż można extend ActiveRecord::Base, nie jestem pewien, czy rzeczywiście można uzyskać dostęp do tych plików z katalogu projektu twojego rails.

Wygląda na to, że istnieje jakiś precedens dla deleting the migration file manually zamiast za pomocą polecenia automatycznego niszczenia szyn.

Powiązane problemy