Rails 引擎模型架构未更新

Rails engine model schema not updating

我目前在我的 rails 应用程序中有一个名为 Marketplace 的引擎。我正在创建一个在引擎中使用的模型,但是这个模型需要与主应用程序的数据库交互。

我创建了模型,并在我的 engine.rb 文件中添加了一些代码,这样当从主应用程序迁移 运行 时,引擎的迁移文件是 运行,也。

initializer :append_migrations do |app|
    unless app.root.to_s.match root.to_s
        config.paths["db/migrate"].expanded.each do |expanded_path|
            app.config.paths["db/migrate"] << expanded_path
        end
    end
end

一切正常,数据库识别引擎,但模型的架构文件未更新。我假设 schema 命令找不到要更新的合适模型。

此外,使用 rails 4.

很有可能,如果您使用的是 rails 引擎,那么您可能不想更新引擎模型的架构。这样您理论上就可以在不同的应用程序中使用该引擎。从 rails 文档中,我学会了在我的 rails 应用程序中创建迁移,然后使用以下命令将迁移复制到应用程序中:

rake engine:install:migrations

然后,您可以 运行 从您的 rails 应用程序进行迁移。

Rails guide on engine migrations

虽然之前编写的代码实际上会 运行 从您的应用程序引擎进行迁移,但它不会将迁移文件复制到您的应用程序中(那么引擎的意义何在?)。