मैं रेल एप्लिकेशन को तैनात करने के लिए कैपिस्ट्रानो का उपयोग कर रहा हूं। मैं ऐसी स्थिति के बारे में सोच रहा हूं जहां डेटाबेस परिवर्तन हुए थे, इसलिए मैं बस cap deploy
नहीं कर सकता क्योंकि कोड अपडेट होने से पहले माइग्रेशन को चलाने की आवश्यकता होती है। मुझे एहसास है कि cap deploy:migrations
है, लेकिन यह मेरी अपेक्षा से थोड़ा अधिक स्वचालित है। मैं चाहता हूं:कैपिस्ट्रानो तैनाती लेकिन मैन्युअल रूप से माइग्रेशन चलाएं
- रिलीज निर्देशिका में नया कोड पुश करें, लेकिन सिमलिंक अपडेट न करें या एप्लिकेशन को पुनरारंभ करें।
- सर्वर में एसएसएच,
rake:db_abort_if_pending_migrations
चलाएं ताकि यह पुष्टि हो सके कि माइग्रेशन जो मैं चलाना चाहता हूं वह केवल लंबित हैं, फिर मैन्युअल रूप सेrake db:migrate
चलाएं। - तैनाती को पूरा करें, सिम्लिंक अपडेट करना और एप्लिकेशन को पुनरारंभ करना।
क्या अंतर्निहित कैपिस्ट्रानो कार्यों के साथ ऐसा करने का कोई आसान तरीका है, या मुझे इसे पूरा करने के लिए अपने स्वयं के तैनाती चरणों को लिखने की आवश्यकता होगी?
मुझे यह भी उल्लेख करना चाहिए कि मैं मामलों के बारे में सोच रहा हूं (कॉलम जोड़ने की तरह) जहां माइग्रेशन लाइव डेटाबेस पर चलाया जा सकता है। अधिक विनाशकारी परिवर्तनों के लिए मुझे एहसास है कि मुझे तैनाती के दौरान साइट को रखरखाव पृष्ठ के साथ नीचे लाने की आवश्यकता होगी।
ऐसा करना चाहिए, धन्यवाद! Capistrano में कार्यों के प्रवाह पर कहीं भी कोई दस्तावेज है (यानी क्या उप-कार्य वास्तव में 'कैप तैनाती' वास्तव में किस क्रम में चलते हैं)? – jrdioko