在Rails 5中,设置config.active_record.schema_format =:sql但仍然在db:migrate上创建schema.rb

问题描述 投票:2回答:2

在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。

我在这里错过了什么魔力?

ruby-on-rails-5 schema.rb
2个回答
4
投票

我认为你应该在Initializers之前设置你的rails组件配置。 rails应用程序按以下顺序初始化。

  • 配置/ application.rb中
  • 特定于环境的配置文件
  • 初始化器
  • 之后,初始化

你可以将你的配置config.active_record.schema_format = :sql放在config/application.rbconfig/environments/development.rb取决于你使用的环境。

这应该工作。


0
投票

在您的初始化程序中执行:

Rails.application.configure do
  config.active_record.schema_format = :sql
end
© www.soinside.com 2019 - 2024. All rights reserved.