7

Я создал новый движок в Rails 3.1.3, и, видимо, есть такая задача, которая копирует все миграции. Я попытался следующие rake abc:install:migrations который бросил:Установка миграции с движка не работает

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

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

Я также попытался rake abc_engine:install:migrations с тем же результатом.

Затем я прочитал bundle exec rake railties:install:migrations или bundle exec rake railties:install:migrations FROM=abc_engine должен тоже сделать трюк, но безуспешно. Ничего не было скопировано, даже если ошибка не была выброшена.

Мои миграции находятся в дб/мигрировать/в папке двигателя, и я побежал все команды выше от спецификации/манекена/

Кто-нибудь знает, как использовать эту новую задачу грабли, чтобы скопировать миграции из двигателя ?

+0

Я застрял, как вы, документации здесь действительно не хватает! –

ответ

2

Я, наконец, нашел/получил повезло с моей (аналогичной) проблемой. Для первой ошибки она просто исчезла, не зная почему. Затем я понял, что не создал миграции, используя обычный формат имени файла, поэтому метод ActiveRecord::Migrator.migrations игнорировал их.

+0

Спасибо за указание, что мигриты являются частью activerecord, у меня его нет в моем проекте, чтобы он не работал: / – Geoffroy

10

Я побежал вместо этого:

rake railties:install:migrations 

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

0

Если приложение, в котором вы монтируете движок, еще не имеет ActiveRecord (т. Е. Вы впервые вводите ActiveRecord в свое хост-приложение, установив движок), вы также можете получить эту ошибку. В частности, вы получите эту ошибку, если у вас нет require "active_record/railtie" в вашем application.rb, или если он закомментирован. Эта линия - это то, что разрешает задачу rake railties:install:migrations, которая определена here. rake railties:install:migrations, в свою очередь, вызван задачей rake abc_engine:install:migrationshere.

Tl; dr: попробуйте добавить require "active_record/railtie" к вашему application.rb, если его еще нет.