2013-07-21 9 views
37

मैं एक फ्लास्क ऐप के लिए माइग्रेशन करना चाहता हूं। मैं अलेम्बिक का उपयोग कर रहा हूँ।लक्ष्य डेटाबेस अद्यतित नहीं है

हालांकि, मुझे निम्न त्रुटि प्राप्त होती है।

Target database is not up to date. 

ऑनलाइन, मैंने पढ़ा है कि इसके साथ कुछ करने के लिए कुछ है। http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch

दुर्भाग्यवश, मुझे समझ में नहीं आता कि डेटाबेस को अद्यतित कैसे किया जाए और लिंक में दिए गए कोड को कहां/कैसे लिखना चाहिए। आप माइग्रेशन के साथ अनुभव है, तो आप मेरे लिए यह व्याख्या कर सकते हैं कृपया

धन्यवाद

उत्तर

46

माइग्रेशन बनाने के बाद, मैन्युअल रूप से या --autogenerate के रूप में, आपको इसे alembic upgrade head के साथ लागू करना होगा। यदि आपने शेल से db.create_all() का उपयोग किया है, तो आप यह इंगित करने के लिए alembic stamp head का उपयोग कर सकते हैं कि डेटाबेस की वर्तमान स्थिति सभी माइग्रेशन के अनुप्रयोग का प्रतिनिधित्व करती है।

5

मैं किसी कारण से मेरी प्रवास फ़ाइलों में से कुछ को नष्ट करने के लिए किया था। यकीन नहीं है कि क्यों। लेकिन इसने समस्या को ठीक किया।

एक मुद्दा यह है कि डेटाबेस सभी नई टेबल आदि के साथ ठीक से अपडेट हो रहा है, लेकिन माइग्रेशन फाइलें स्वचालित रूप से ऑटोगेट्रेट का उपयोग करते समय कोई भी परिवर्तन नहीं दिखाती हैं।

अगर किसी के पास बेहतर समाधान है, तो कृपया मुझे बताएं, क्योंकि अभी मेरा समाधान हैकी है।

+0

मुझे पता है कि यह अब थोड़ा पुराना है, लेकिन क्या आपकी टेबल बेस से प्राप्त होती है? मेरे पास एक ही समस्या थी और ऑटोगेट्रेट इस तथ्य के कारण परिवर्तन नहीं उठा रहा था कि मेरी नई टेबल बेस से विरासत में नहीं थीं, जहां आधार 'बेस = घोषणात्मक_बेस() ' है और 'sqlalchemy.ext.declarative आयात declarative_base से भी याद रखें ' –

संबंधित मुद्दे