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