Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Working on a Rails 5 app, I want to use structure.sql instead of schema.rb (we're using PostGIS with lots of custom SQL calls...). In config/initializers/database_options.rb I have the following:

# use structure.sql, not schema.rb
Rails.application.config.active_record.schema_format = :sql

If I run the following:

$ rake db:migrate

it generates db/schema.rb, not db/structure.sql.

The rails guides say:

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.

What magic am I missing here?

like image 790
Doug Avatar asked Dec 28 '16 20:12

Doug


1 Answers

I think you should put your rails component config before Initializers. The rails application initialize by the following order.

  • config/application.rb
  • Environment-specific configuration files
  • Initializers
  • After-initializers

You could put your config config.active_record.schema_format = :sql either in config/application.rb or config/environments/development.rb depends on environment you used.

That should work.

like image 167
bananaappletw Avatar answered Sep 18 '22 04:09

bananaappletw