September 22, 2020
This blog is part of our Rails 6.1 series.
Rails 6.1 deprecates
rails db:structure:load
and rails db:structure:dump
tasks.
Before Rails 6.1, executing rake db:schema:dump
would dump db/schema.rb
file. And executing rake db:structure:dump
would dump db/structure.sql
file.
Rails provides config.active_record.schema_format
setting for which the valid
values are :ruby
or :sql
. However, since there are specific tasks for
db:structure
and db:schema
this value was not really being used.
In Rails 6.1 the Rails team decided to combine the two different tasks into a
single task. In Rails 6.1 rails db:structure:dump
and
rails db:structure:load
have been deprecated and the following message would
be shown.
Using `bin/rails db:structure:dump` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:dump` instead.
Now Rails will start taking into the account value set for
config.active_record.schema_format
.
rails db:schema:dump
and rails db:schema:load
would do the right thing based
on the value set for config.active_record.schema_format
.
Check out the pull request for more details on this.
If this blog was helpful, check out our full blog archive.