rake db:test:clone
to clone the database. We noticed that the cloning was not working correctly; therefore, we needed to go back to dumping the schema to development_structure.sql
. This is easily done by changing config.active_record.schema_format = :sql
in environment.rb
.However, even after making the above change in
environment.rb
, rake db:test:clone
kept creating a schema.rb
file and not a development_structure.sql
. This surprised us, because running rake
did create a development_structure.sql
and did not create a schema.rb
.After a brief look at the list generated by
rake -T
, we noticed the rake test:db:clone_structure
task. rake test:db:clone_structure
does generate development_structure.sql
.This is easy enough to remember once you learn, but I'm not sure that it's the most intuitive option. To me,
rake db:test:clone
is very generic and should behave similar to rake
by reading the environment.rb file and creating the expected file.If it's truly necessary to have a task that generates specifically
schema.rb
or development_structure.sql
they could be name more explicitly as test:db:clone_using_ruby
and test:db:clone_using_sql
, or something along those lines. Though, I have to wonder if anyone is actually setting their environment.rb
to one option and running rake
with the other option.
I am a novice in RoR and this situation is not intuitive. I am searching about this subject to learn more, but there is few documentation. Thanks, you help me more.
ReplyDelete