/ / बिल्डपैक तैनाती का उपयोग करते समय मैं डीज़ो पर स्वचालित रूप से डीजेगो माइग्रेशन कैसे चला सकता हूं? - डीजेंगो, डीआईएस

बिल्डपैक तैनाती का उपयोग करते समय मैं डीज़ो पर स्वचालित रूप से डीजेगो माइग्रेशन कैसे चला सकता हूं? - डीजेंगो, डीआईएस

डीस पर पोस्ट-कंपाइल हुक हेरोोकू की तुलना में अलग-अलग काम करता है।

हेरोकू पर मैं बस एक बिन / पोस्ट-संकलन फ़ाइल जोड़ सकता हूं जिसमें निम्न शामिल हैं:

#!/usr/bin/env bash

python manage.py migrate --noinput

डीआईएस पर यह मुझे एक ट्रेसबैक देता है

Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
No module named django.core.management

क्या कोई भी बिल्डपैक्स का उपयोग कर डीज पर डीजेगो चला रहा है और इसका एक उदाहरण है?

उत्तर:

उत्तर № 1 के लिए 1

मुझे अंत में दो समाधान मिल गए हैं।

सरल जवाब सिर्फ पायथन के लिए एक पूरा रास्ता प्रदान करना है। मैंने एक बिन / पोस्ट-संकलन फ़ाइल को जोड़कर इसका परीक्षण किया है Deis / उदाहरण-अजगर-Django

#!/usr/bin/env bash

/app/.heroku/python/bin/python manage.py migrate --noinput

यह समाधान तब भी काम नहीं करता है जब आपको अपने किसी भी कॉन्फ़िगरेशन चर के उपयोग की आवश्यकता होती है, जो कि यदि आप 12 फैक्टर ऐप पद्धति का पालन कर रहे हैं तो सबसे अधिक संभावना है।

दुर्भाग्य से डीआईएस पोस्ट-कंपाइल हुक को उसी तरह से नहीं चलाता है जैसे ही हेरोोकू करता है इसलिए हमें पहले हमारे पर्यावरण चर निर्यात करने की आवश्यकता होती है। उप env समारोह से Heroku-buildpack-अजगर एक गाइड के रूप में मैं इसके साथ आया ...

#!/usr/bin/env bash

echo "-----> Running post-compile hook"

BUILD_DIR=/tmp/build
ENV_DIR=/tmp/environment

BLACKLIST="^(GIT_DIR|STACK|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$"

# Python-specific variables.
export PYTHONHOME=$BUILD_DIR/.heroku/python
export PYTHONPATH=$BUILD_DIR/

if [ -d "$ENV_DIR" ]; then
for e in $(ls $ENV_DIR); do
echo "$e" | grep -E "$WHITELIST" | grep -qvE "$BLACKLIST" &&
export "$e=$(cat $ENV_DIR/$e)"
:
done
fi

$PYTHONHOME/bin/python manage.py migrate --noinput