2009-10-08 12 views
12

मैं तैनाती चलाने से पहले कुछ प्रक्रियाओं को रोकना चाहता हूं: कार्य माइग्रेट करें। मुझे पता है कि मैं तैनाती को फिर से परिभाषित कर सकता हूं: मौजूदा कोड की प्रतिलिपि बनाकर कार्य को माइग्रेट करें और कार्य की शुरुआत और अंत में स्टॉप/स्टार्ट चरणों को जोड़कर।कैपिस्ट्रानो कार्य में आप कुछ कदम कैसे जोड़ते हैं?

मुझे आश्चर्य है कि डिफ़ॉल्ट तैनाती से कोड कॉपी करने से बचने का कोई तरीका है: कार्य के मेरे संस्करण में कार्य माइग्रेट करें। मौजूदा तैनाती का संदर्भ देने का कोई तरीका है: एक ही नाम के नए कार्य को परिभाषित करते समय कार्य माइग्रेट करें?

उत्तर

21

deploy:migrate को फिर से परिभाषित करने के बजाय, आपको इसके लिए पहले या बाद में हुक परिभाषित करना चाहिए।

before "deploy:migrate", :custom_name 
after "deploy:migrate", :custom_name 
+0

धन्यवाद, यह वही है जो मुझे चाहिए – Readonly

0
:

task :custom_name do 
    # whatever you need to do 
end 

और फिर इस नए कार्य सेट निम्न में से कोई एक करके पहले या deploy:migrate कार्य के बाद चलाने के लिए: सबसे पहले, एक नया कार्य है कि सामान आपको बस इतना करना है बनाने

मेरी आवश्यकताओं के लिए, मैं मौजूदा कार्य को deploy.rb

namespace :deploy do 
    # to Override deploy:migrate task 
    task :precompile, :roles => :app, :except => { :no_release => true } do 
    run "your modified commands" 
    end 
    # to override deploy:assets:precompile task 
    namespace :assets do 
    task :precompile, :roles => :app, :except => { :no_release => true } do 
     run "your modified commands" 
    end 
    end 
end 
संबंधित मुद्दे