के साथ डेटाबेस माइग्रेट या अपग्रेड नहीं कर सकता मैं अपने डेटाबेस को अपडेट करने के लिए Flask-Migrate (Alembic) का उपयोग कर रहा हूं। मैंने अपनी models.py
फ़ाइल अपडेट की है हालांकि मैंने एक त्रुटि की है। मैं एक प्रवास भाग गया और डेटाबेस के उन्नयन के लिए चला गया, लेकिन मैं यह त्रुटि आई:Flask-Migrate (Alembic)
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1215, 'Cannot add foreign key constraint') [SQL: u'\nCREATE TABLE topics (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\t`subjectID` INTEGER, \n\ttopic VARCHAR(150) NOT NULL, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(`subjectID`) REFERENCES subjects (id)\n)\n\n']
मैंने क्या किया था एक विदेशी कुंजी के लिए db.Text
बजाय db.Integer
है।
alembic.util.CommandError: Target database is not up to date.
तो अब मैं अटक कर रहा हूँ:
जब मैं एक नया माइग्रेशन चलाने की कोशिश मैं इस मिलता है। मैं डेटाबेस को अपग्रेड नहीं कर सकता और न ही माइग्रेशन चला सकता हूं। मैं कुछ इस तरह का उपयोग करके एक पुराने डेटाबेस संस्करण में डाउनग्रेड करने की कोशिश की:
python manage.py db downgrade --sql b877018671c:36949b1cca31
लेकिन जब मैं python manage.py db current
चलाने मैं नवीनतम डेटाबेस संस्करण है जो मैं में फंस कर रहा हूँ मिल
वहाँ इस के लिए एक ठीक है।? धन्यवाद।
ऐसा लगता है कि आपके पास माइग्रेशन (खराब एक) है जिसे आपने अभी तक नहीं चलाया है। या तो इसे सही या संपादित करने के लिए संपादित करें और फिर माइग्रेशन उत्पन्न करें। – dirn
मैं माइग्रेशन कैसे हटा सकता हूं? –
माइग्रेशन सिर्फ फाइलें हैं। आपको बस फाइल को हटाना होगा। फ्लास्क-माइग्रेट आम तौर पर उन्हें 'माइग्रेशन/वर्जन' के अंदर स्टोर करता है। – dirn