在 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
.
rails 向导说:
There are two ways to dump the schema. This is set in
config/application.rb by the config.active_record.schema_format
setting, which may be either :sql or :ruby.
我在这里缺少什么魔法?
我认为您应该将 rails 组件配置放在 Initializers
之前。
rails 应用程序按以下顺序初始化。
- config/application.rb
- 特定于环境的配置文件
- 初始化器
- 后初始化器
您可以将配置 config.active_record.schema_format = :sql
放在 config/application.rb
或 config/environments/development.rb
中,具体取决于您使用的环境。
应该可以。
在你的初始化程序中做:
Rails.application.configure do
config.active_record.schema_format = :sql
end
在开发 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
.
rails 向导说:
There are two ways to dump the schema. This is set in config/application.rb by the config.active_record.schema_format setting, which may be either :sql or :ruby.
我在这里缺少什么魔法?
我认为您应该将 rails 组件配置放在 Initializers
之前。
rails 应用程序按以下顺序初始化。
- config/application.rb
- 特定于环境的配置文件
- 初始化器
- 后初始化器
您可以将配置 config.active_record.schema_format = :sql
放在 config/application.rb
或 config/environments/development.rb
中,具体取决于您使用的环境。
应该可以。
在你的初始化程序中做:
Rails.application.configure do
config.active_record.schema_format = :sql
end