मैं लोचदार Beanstalk का उपयोग कर AWS के लिए एक Django परियोजना तैनात कर रहा हूँ और डेटाबेस माइग्रेट करने पर अटक गया हूँ।Django AWS लोचदार Beanstalk डेटाबेस माइग्रेट
जहां मैं हूं: मैं सफलतापूर्वक अपने django प्रोजेक्ट को तैनात करने और mysubdomain.elasticbeanstalk.com के माध्यम से पृष्ठ लोड करने में सक्षम हूं। पेज त्रुटि के बिना लोड करता है जब तक कि मैं उस पृष्ठ पर न जाता हूं जिसे डेटाबेस कॉल करने की आवश्यकता होती है। मुझे relation "accounts_user" does not exist LINE 1: SELECT COUNT(*) FROM "accounts_user"
जैसी त्रुटि मिलती है क्योंकि मेरा डेटाबेस माइग्रेट नहीं किया गया है।
मैंने जो कोशिश की है: मैंने चीजों की कुछ भिन्नताओं की कोशिश की है। सौभाग्य से स्टैक ओवरफ्लो पोस्ट और कुछ ट्यूटोरियल की एक बहुतायत है। दुर्भाग्यवश, वे सभी एक अलग संस्करण का उपयोग कर रहे हैं और वे जो सुझाव देते हैं वे मेरे प्रोजेक्ट पर लागू नहीं होते हैं।
यह मेरे लिए बहुत स्पष्ट है कि मुझे .ebextensions/
फ़ोल्डर के अंदर foobar.config
फ़ाइल में माइग्रेशन चलाने की आवश्यकता है।
container_commands:
01_migrate:
command: "python manage.py migrate --noinput"
leader_only: true
लॉग में, मैं देख रहा हूँ के बाद तैनाती स्क्रिप्ट चलाने की कोशिश की लेकिन यह विफल रहा है कि: यहाँ मैं क्या करना चाहते हैं का आधार है। मुझे त्रुटि पर कोई अन्य जानकारी नहीं मिलती है, केवल एक चीज जो मैं देखता हूं वह है "त्रुटि: 01_ माइग्रेट पोस्ट परिनियोजन स्क्रिप्ट विफल"
मुझे पता चलता है कि मुझे कमांड के लिए वर्चुअल वातावरण को सक्रिय करने की आवश्यकता है, जो बनाता है समझ। Asdf से मैं यह कोशिश करता हूं:
container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python rlg/manage.py migrate --noinput"
leader_only: true
लेकिन यह काम नहीं करता है। असल में, एसएसएच के माध्यम से मुझे पता चला कि मेरे पास एक/ऑप्ट/पायथन/फ़ोल्डर भी नहीं है, केवल/ऑप्ट/aws/और/opt/elasticbeanstalk /। सभी ट्यूटोरियल और SO प्रश्न इस फ़ोल्डर को संदर्भित करते हैं लेकिन मेरे पास यह नहीं है?
VERSIONS: पायथन 3.4.1, Django 1.7.7, एडब्ल्यूएस CLI 3.2.1, Postgres 9.3
मैं एक ही स्थान पर अटक गया हूं। जो मैंने पाया: कंटेनर_कॉमैंड्स डॉकर कंटेनर के भीतर निष्पादित नहीं होते हैं। उन्हें ec2 इंस्टेंस पर ही निष्पादित किया जाता है। मुझे लगता है कि हमें "डॉकर exec [container_name]/var/app/bin/python manage.py migrate --noinput दुर्भाग्यवश मैं अभी भी सही [कंटेनर_नाम] –
@SebastianAnnies को खोजने में संघर्ष कर रहा हूं जैसे माइग्रेशन को निष्पादित करना होगा , खुशी है कि मैंने किसी को एक ही स्थान पर पाया! टिप के लिए धन्यवाद मैं उस पर भी काम कर रहा हूं और मुझे कुछ भी पता चलेगा जो मुझे लगता है – awwester