在Rails 5应用程序上工作,我想使用structure.sql
而不是schema.rb
(我们正在使用带有大量自定义SQL调用的PostGIS ...)。在config/initializers/database_options.rb
我有以下内容:
# use structure.sql, not schema.rb
Rails.application.config.active_record.schema_format = :sql
如果我运行以下内容:
$ rake db:migrate
它生成db/schema.rb
,而不是db/structure.sql
。
导轨指南说:
有两种方法可以转储模式。这是通过config.active_record.schema_format设置在config / application.rb中设置的,它可以是:sql或:ruby。
我在这里错过了什么魔力?
我认为你应该在Initializers
之前设置你的rails组件配置。 rails应用程序按以下顺序初始化。
你可以将你的配置config.active_record.schema_format = :sql
放在config/application.rb
或config/environments/development.rb
取决于你使用的环境。
这应该工作。
在您的初始化程序中执行:
Rails.application.configure do
config.active_record.schema_format = :sql
end