diff --git a/lib/symfony2/doctrine.rb b/lib/symfony2/doctrine.rb index fe7479a..7edfe22 100755 --- a/lib/symfony2/doctrine.rb +++ b/lib/symfony2/doctrine.rb @@ -159,6 +159,14 @@ end end end + + desc "Load data fixtures" + task :load_fixtures, :roles => :app, :except => { :no_release => true } do + if !interactive_mode || Capistrano::CLI.ui.agree("Careful, database will be purged. Do you want to continue? (Y/N)") + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:mongodb:fixtures:load --no-interaction #{console_options}'", :once => true + end + capifony_puts_ok + end end namespace :init do diff --git a/spec/capifony_symfony2_doctrine_spec.rb b/spec/capifony_symfony2_doctrine_spec.rb index a03be71..e3e39a1 100755 --- a/spec/capifony_symfony2_doctrine_spec.rb +++ b/spec/capifony_symfony2_doctrine_spec.rb @@ -172,6 +172,18 @@ it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:mongodb:schema:drop --index --env=prod --no-debug\'') } end + it "defines symfony:doctrine:mongodb:load_fixtures task" do + @configuration.find_task('symfony:doctrine:mongodb:load_fixtures').should_not == nil + end + + context "when running symfony:doctrine:mongodb:load_fixtures" do + before do + @configuration.find_and_execute_task('symfony:doctrine:mongodb:load_fixtures') + end + + it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:mongodb:fixtures:load --no-interaction --env=prod --no-debug\'') } + end + it "defines symfony:doctrine:init tasks" do @configuration.find_task('symfony:doctrine:init:acl').should_not == nil end