我在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任务来从引擎复制迁移?
答案 0 :(得分:10)
我跑了这个:
rake railties:install:migrations
我的迁移是从引擎中复制的。 希望这会有所帮助。
答案 1 :(得分:2)
我终于找到/幸运得到了我的(类似)问题。对于第一个错误,它只是消失了,不知道为什么。然后我发现我没有使用通常的文件名格式创建迁移,因此ActiveRecord::Migrator.migrations
方法忽略了它们。
答案 2 :(得分:1)
如果您安装引擎的应用程序尚未安装ActiveRecord(即您首次通过安装引擎将ActiveRecord引入主机应用程序),您也可能会收到此错误。具体而言,如果您的require "active_record/railtie"
中没有application.rb
,或者已将其注释掉,则会收到此错误。该行启用了rake railties:install:migrations
任务,该任务定义为here。反过来,rake railties:install:migrations
任务here会调用rake abc_engine:install:migrations
。
Tl; dr:尝试将require "active_record/railtie"
添加到application.rb
,如果它尚未存在的话。