从引擎安装迁移不起作用



我在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:migrationsbundle exec rake railties:install:migrations FROM=abc_engine也应该能做到,但没有成功。即使没有引发错误,也没有复制任何内容。

我的迁移位于引擎文件夹中的db/migrate/中,我从spec/demy/运行了上面的所有命令

有人知道如何使用这个新的rake任务来从引擎复制迁移吗?

我运行了这个:

rake railties:install:migrations

我的迁移是从引擎中复制的。希望这能有所帮助。

我终于找到了我的(类似的)问题。对于第一个错误,它只是消失了,不知道为什么。然后我发现我没有使用通常的文件名格式创建迁移,所以ActiveRecord::Migrator.migrations方法忽略了它们。

如果您要安装引擎的应用程序还没有ActiveRecord(即您通过安装引擎首次将ActiveRecord引入主机应用程序),您也可能会出现此错误。具体来说,如果您的application.rb中没有require "active_record/railtie",或者它被注释掉了,则会出现此错误。这一行就是启用rake railties:install:migrations任务的原因,该任务在此处定义。rake railties:install:migrations又被这里的rake abc_engine:install:migrations任务调用。

Tl;dr:如果你的application.rb还没有require "active_record/railtie",试着把它添加进去。

最新更新