From 5a73699bbf6bba3e98bd43f0d8e78fef65ef59f9 Mon Sep 17 00:00:00 2001 From: ulrich Date: Sun, 10 Mar 2013 18:02:39 +0100 Subject: [PATCH 1/3] add use of flush option in doctrine:clear_* task --- lib/capifony_symfony2.rb | 3 +++ lib/symfony2/doctrine.rb | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) mode change 100644 => 100755 lib/capifony_symfony2.rb mode change 100644 => 100755 lib/symfony2/doctrine.rb diff --git a/lib/capifony_symfony2.rb b/lib/capifony_symfony2.rb old mode 100644 new mode 100755 index 28b97c2..281d2ff --- a/lib/capifony_symfony2.rb +++ b/lib/capifony_symfony2.rb @@ -114,6 +114,9 @@ def self.load_into(configuration) # Doctrine custom entity manager set :doctrine_em, false + + # Use --flush option in doctrine:clear_* task + set :doctrine_clear_use_flush_option, false # Symfony2 version set(:symfony_version) { guess_symfony_version } diff --git a/lib/symfony2/doctrine.rb b/lib/symfony2/doctrine.rb old mode 100644 new mode 100755 index 5200b03..0ee914a --- a/lib/symfony2/doctrine.rb +++ b/lib/symfony2/doctrine.rb @@ -5,7 +5,7 @@ task :clear_metadata, :roles => :app, :except => { :no_release => true } do capifony_pretty_print "--> Clearing Doctrine metadata cache" - run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-metadata --env=#{symfony_env_prod}#{doctrine_em_flag}'" + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-metadata --env=#{symfony_env_prod}#{doctrine_em_flag}"+ if doctrine_clear_use_flush_option then " --flush" else "" end +"'" capifony_puts_ok end @@ -13,7 +13,7 @@ task :clear_query, :roles => :app, :except => { :no_release => true } do capifony_pretty_print "--> Clearing Doctrine query cache" - run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-query --env=#{symfony_env_prod}#{doctrine_em_flag}'" + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-query --env=#{symfony_env_prod}#{doctrine_em_flag}"+ if doctrine_clear_use_flush_option then " --flush" else "" end +"'" capifony_puts_ok end @@ -21,7 +21,7 @@ task :clear_result, :roles => :app, :except => { :no_release => true } do capifony_pretty_print "--> Clearing Doctrine result cache" - run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-result --env=#{symfony_env_prod}#{doctrine_em_flag}'" + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-result --env=#{symfony_env_prod}#{doctrine_em_flag}"+ if doctrine_clear_use_flush_option then " --flush" else "" end +"'" capifony_puts_ok end end From 1f40d81e69a4cecee1d986a41b3df9193f67f487 Mon Sep 17 00:00:00 2001 From: ulrich Date: Mon, 11 Mar 2013 20:00:46 +0100 Subject: [PATCH 2/3] remove inline condition --- lib/symfony2/doctrine.rb | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/symfony2/doctrine.rb b/lib/symfony2/doctrine.rb index 0ee914a..5725ce8 100755 --- a/lib/symfony2/doctrine.rb +++ b/lib/symfony2/doctrine.rb @@ -5,7 +5,13 @@ task :clear_metadata, :roles => :app, :except => { :no_release => true } do capifony_pretty_print "--> Clearing Doctrine metadata cache" - run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-metadata --env=#{symfony_env_prod}#{doctrine_em_flag}"+ if doctrine_clear_use_flush_option then " --flush" else "" end +"'" + if doctrine_clear_use_flush_option + flush_option = " --flush" + else + flush_option = "" + end + + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-metadata --env=#{symfony_env_prod}#{doctrine_em_flag}#{flush_option}'" capifony_puts_ok end @@ -13,7 +19,13 @@ task :clear_query, :roles => :app, :except => { :no_release => true } do capifony_pretty_print "--> Clearing Doctrine query cache" - run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-query --env=#{symfony_env_prod}#{doctrine_em_flag}"+ if doctrine_clear_use_flush_option then " --flush" else "" end +"'" + if doctrine_clear_use_flush_option + flush_option = " --flush" + else + flush_option = "" + end + + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-query --env=#{symfony_env_prod}#{doctrine_em_flag}#{flush_option}'" capifony_puts_ok end @@ -21,7 +33,13 @@ task :clear_result, :roles => :app, :except => { :no_release => true } do capifony_pretty_print "--> Clearing Doctrine result cache" - run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-result --env=#{symfony_env_prod}#{doctrine_em_flag}"+ if doctrine_clear_use_flush_option then " --flush" else "" end +"'" + if doctrine_clear_use_flush_option + flush_option = " --flush" + else + flush_option = "" + end + + run "#{try_sudo} sh -c 'cd #{latest_release} && #{php_bin} #{symfony_console} doctrine:cache:clear-result --env=#{symfony_env_prod}#{doctrine_em_flag}#{flush_option}'" capifony_puts_ok end end From f9c08657ad672f9d6f9bc6cbcaa446342aa84960 Mon Sep 17 00:00:00 2001 From: ulrich Date: Mon, 11 Mar 2013 20:04:45 +0100 Subject: [PATCH 3/3] add unit test for doctrine_clear_use_flush_option --- spec/capifony_symfony2_doctrine_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) mode change 100644 => 100755 spec/capifony_symfony2_doctrine_spec.rb diff --git a/spec/capifony_symfony2_doctrine_spec.rb b/spec/capifony_symfony2_doctrine_spec.rb old mode 100644 new mode 100755 index 0536c00..1c9e855 --- a/spec/capifony_symfony2_doctrine_spec.rb +++ b/spec/capifony_symfony2_doctrine_spec.rb @@ -207,5 +207,19 @@ it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:fixtures:load --env=prod --em=custom_em\'') } it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:migrations:status --env=prod --em=custom_em\'') } end + + context "when running symfony:doctrine:clear_* with flush option" do + before do + @configuration.set :doctrine_clear_use_flush_option, true + + @configuration.find_and_execute_task('symfony:doctrine:cache:clear_metadata') + @configuration.find_and_execute_task('symfony:doctrine:cache:clear_query') + @configuration.find_and_execute_task('symfony:doctrine:cache:clear_result') + end + + it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:cache:clear-metadata --env=prod --flush\'') } + it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:cache:clear-query --env=prod --flush\'') } + it { should have_run(' sh -c \'cd /var/www/releases/20120927 && php app/console doctrine:cache:clear-result --env=prod --flush\'') } + end end