簡體   English   中英

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

[英]In Rails 5, setting config.active_record.schema_format = :sql but still getting schema.rb created on db:migrate

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

我在這里想念什么魔法?

我認為您應該將Rails組件配置放在Initializers之前。 rails應用程序按以下順序初始化。

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

您可以將config config.active_record.schema_format = :sql放在config/application.rbconfig/environments/development.rb取決於您使用的環境。

那應該工作。

在初始值設定項中:

Rails.application.configure do
  config.active_record.schema_format = :sql
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM