I've been trying to run rake db:test:clone_structure
, but it keeps failing to rebuild the database. I finally looked at the task itself:
task :clone_structure => [ "db:structure:dump", "db:test:load_structure" ]
When I run the trace, I've noticed that db:test:load_structure
isn't getting executed:
$ rake db:test:clone_structure --trace
** Invoke db:test:clone_structure (first_time)
** Invoke db:structure:dump (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:structure:dump
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
** Execute db:test:clone_structure
Now, when I change the clone_structure
task to invoke load_structure
...
task :clone_structure => [ "db:structure:dump", "db:test:load_structure" ] do
db_namespace["test:load_structure"].invoke
end
...everything suddenly works!
$ rake db:test:prepare --trace
** Invoke db:test:clone_structure (first_time)
** Invoke db:structure:dump (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:structure:dump
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
** Execute db:test:clone_structure
** Invoke db:test:load_structure (first_time)
** Invoke db:test:purge
** Execute db:test:load_structure
** Invoke db:structure:load (first_time)
** Invoke environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:structure:load
What could possibly be causing this behavior? I'm using Rails 3.2.14 and Rake 10.1.0.
UPDATED: I upgraded Rails to 3.2.13 from 3.2.11 and it's still a problem.
UPDATED THE SECOND: I upgraded Rails to 3.2.14 and Rake to 10.1.0 and it's still a problem
I would say you are almost there. As far as I know the rake convention for this would be...
task :clone_structure => [ "db:structure:dump", "db:test:load_structure" ] do
Rake::Task["clone_structure"].invoke
end
Otherwise, I prefer...
task :clone_structure do
Rake::Task["db:structure:dump"].invoke
Rake::Task["db:test:load_structure"].invoke
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With