Установка миграций из движка не будет работать

Я создал новый движок в Rails 3.1.3 и, по-видимому, есть задача rake, которая копирует все миграции. Я попытался выполнить 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 тоже должны помочь, но безуспешно. Ничего не копировалось, хотя ошибки не было.

Мои миграции находятся в db/migrate/ в папке движка, и я запускал все вышеперечисленные команды из spec/dummy/

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


person Cojones    schedule 05.01.2012    source источник
comment
Я застрял, как и вы, документации здесь действительно не хватает!   -  person Nicolas Buduroi    schedule 20.03.2012


Ответы (3)


Вместо этого я запустил это:

rake railties:install:migrations

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

person Antonio    schedule 18.07.2013

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

person Nicolas Buduroi    schedule 19.03.2012
comment
Спасибо, что указали, что migraitons являются частью activerecord, у меня его нет в моем проекте, поэтому он не работает :/ - person Geoffroy; 20.01.2015

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

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

person Bad Request    schedule 13.11.2017