7

W Railsach 3.1.3 stworzyłem nowy silnik i najwyraźniej jest to zadanie rake, które kopiuje wszystkie migracje. Próbowałem następujących rake abc:install:migrations który rzucił:Instalowanie migracji z silnika nie zadziała

rake aborted! 
Don't know how to build task 'abc:install:migrations' 

(See full trace by running task with --trace) 

Próbowałem też rake abc_engine:install:migrations z takim samym skutkiem.

Potem czytam bundle exec rake railties:install:migrations lub bundle exec rake railties:install:migrations FROM=abc_engine powinien również zrobić lewy, ale bez powodzenia. Nic nie zostało skopiowane, mimo że nie zgłoszono błędu.

Moi migracje znajdują się w db/migrować/w folderze silnika i wpadłem wszystkie polecenia wyżej od specyfikacji/manekina/

Czy ktoś wie, jak korzystać z tego nowego zadania Rake w celu skopiowania migracje z silnika ?

+0

Utknąłem jak ty, brakuje tu dokumentacji! –

Odpowiedz

2

W końcu znalazłem/miałem szczęście z moim (podobnym) problemem. Za pierwszy błąd po prostu zniknął, nie wiem dlaczego. Wtedy zorientowałem się, że nie utworzyłem migracji przy użyciu zwykłego formatu nazwy pliku, więc metoda ActiveRecord::Migrator.migrations ignorowała je.

+0

Dzięki za wskazanie, że migawki są częścią activerecord, nie mam tego w moim projekcie, więc to nie działało: / – Geoffroy

10

wpadłem to zamiast:

rake railties:install:migrations 

A moi migracje zostały skopiowane z silnika. Mam nadzieję, że to pomoże.

0

Jeśli aplikacja, w której montujesz silnik, nie ma jeszcze ActiveRecord (tj. Po raz pierwszy wprowadzasz ActiveRecord do aplikacji hosta przez zamontowanie silnika), możesz również uzyskać ten błąd. W szczególności dostaniesz ten błąd, jeśli nie masz require "active_record/railtie" w swoim application.rb, lub jeśli jest to skomentowane. Linia ta umożliwia zadanie rake railties:install:migrations, które jest zdefiniowane jako here. rake railties:install:migrations jest z kolei wywoływana przez zadanie rake abc_engine:install:migrationshere.

Tl; dr: spróbuj dodać require "active_record/railtie" do swojego application.rb, jeśli jeszcze tam nie było.

Powiązane problemy