2013-08-26 8 views
5

जब एक Django दक्षिण प्रवास आवेदन करते समय मुझे एक परेशानी हो रही हूँ:stucked - TransactionManagement त्रुटि

हमेशा की

, मैं एक सफल schemamigration

python manage.py migrate webapp 

लॉग सांत्वना के बाद विस्थापित आदेश निष्पादित :

Running migrations for webapp: 
- Migrating forwards to 0020_auto__add_example. 
> webapp:0020_auto__add_example 
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK 

त्रुटि विशिष्ट माइग्रेशन से संबंधित नहीं है जैसे कि मैं पीछे की ओर जाता हूं और दूसरा प्रयास करता हूं, यह वही संदेश दिखाता है।

कोई विचार?

संपादित करें। यह क्वेरी का लॉग है:

(0.005) SELECT `south_migrationhistory`.`id`, `south_migrationhistory`.`app_name`, `south_migrationhistory`.`migration`, `south_migrationhistory`.`applied` FROM `south_migrationhistory` WHERE `south_migrationhistory`.`applied` IS NOT NULL ORDER BY `south_migrationhistory`.`applied` ASC; args=() 
Running migrations for webapp: 
- Migrating forwards to 0020_auto__add_example. 
> webapp:0020_auto__add_example 
(0.002) CREATE TABLE ROLLBACK_TEST (X INT); args=() 
TransactionManagementError: Transaction managed block ended with pending COMMIT/ROLLBACK 
+0

क्या आप एसक्यूएल लॉगिंग सक्षम कर सकते हैं और परिणाम यहां संलग्न कर सकते हैं? https://coderwall.com/p/uzhyca – tuxcanfly

+1

@tuxcanfly, मैंने इसे जोड़ा है। – Miquel

+1

धन्यवाद tuxcanfly। कम से कम मैंने डीजेंगो प्रश्नों को निष्पादित करते समय डेटाबेस को लॉग इन करना सीखा। – Miquel

उत्तर

0

मैं उस समस्या का उत्तर लिख रहा हूं क्योंकि यह किसी के लिए उपयोगी हो सकता है।

डीबगिंग के कुछ समय बाद मुझे पता चला कि समस्या django से संबंधित नहीं थी। यह डेटाबेस और वर्चुअल मशीन के साथ एक मुद्दा था जो इसे होस्ट करता है।

मैंने डेटाबेस मशीन को पुनरारंभ किया और माइग्रेशन अब काम कर रहे हैं।

1

मुझे एक ही समस्या थी और मेरे लिए समाधान केवल python manage.py migrate webapp कमांड को निष्पादित करने वाले उपयोगकर्ता को मेरे स्क्लाइट development.db फ़ाइल के उचित अधिकार देने के लिए था। मेरे पास फ़ाइल www-data थी और इसलिए फ़ाइल पर काम नहीं कर सका।

3

मुझे एक ही समस्या थी और थोड़ी देर के लिए मेरे सिर को टक्कर लगी थी। यह पता चला है कि मेरा (MySQL) डेटाबेस उपयोगकर्ता के पास पर्याप्त विशेषाधिकार नहीं हैं। मैंने असाइन किया: ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, उपयोगकर्ता को अपडेट करें और सबकुछ ठीक काम करता है।

13

मैं बस इसी तरह की समस्या में भाग गया।

  • MySQL 5.6.13 (अमेज़न आरडीएस पर)
  • Django == 1.5.4
  • MySQL-अजगर == 1.2.4
  • दक्षिण == 0.8.2

मैं यहाँ लगभग हर संभव फिक्स के माध्यम से और अनगिनत Google खोजों के माध्यम से शून्य भाग्य के माध्यम से चला गया।

मैंने डेटाबेस स्कीमा को देखा और एक तालिका जिसे मैंने 'ROLLBACK_TEST' नाम नहीं बनाया था, स्कीमा का हिस्सा था।

एक बार जब मैंने उस रहस्य तालिका को छोड़ दिया तो माइग्रेशन बेकार ढंग से दौड़ गया।

यह तालिका केवल डीजेगो, दक्षिण या संभवतः अमेज़ॅन में एक आंतरिक प्रक्रिया के माध्यम से उत्पन्न हो सकती है क्योंकि किसी और के पास पहुंच नहीं है।

+0

मैं एक ही मुद्दे में भाग गया। मैंने माइग्रेशन को निरस्त कर दिया और ROLLBACK_TEST डेटाबेस में छोड़ी गई एक तालिका थी। उस तालिका को छोड़कर दक्षिण चीजें ठीक हैं। – Adriaan

+1

ध्यान दें कि यदि आप अपने डीबी उपयोगकर्ता के पास ड्रॉप विशेषाधिकार नहीं हैं तो आप इस समस्या में भाग सकते हैं – Esteban

0

जब मैं एक ही मुद्दे पर आया तो मेरी समस्या django से कम या कम थी। मै समझाता हूँ।

मैं अपने कंसोल में विभिन्न टैब के साथ काम कर रहा था। मेरे मॉडल का परीक्षण करने के लिए एक डीजेंगो खोल के साथ इस्तेमाल किया गया था और दूसरे टैब में मैं माइग्रेशन चलाता हूं।मैं अपने खोल टैब में एक अखंडता त्रुटि के लिए आया था। इसलिए, जब तक मैंने समस्या हल नहीं की (see this thread) या टैब बंद कर दिया, माइग्रेशन टैब में त्रुटि बनी रही। जैसा कि पूर्व उत्तर ने इंगित किया था, यह डीबी से संबंधित कुछ था - लेकिन डीबी की गलती नहीं थी।

3

मुझे Django 1.6 और दक्षिण 1.0 के साथ एक MySQL उदाहरण पर एक ही समस्या थी। django.db.backends लकड़हारा चालू करने के बाद मुझे एहसास हुआ प्रवास निम्नलिखित एसक्यूएल बयान पर फंस गया था:

DEBUG (0.003) CREATE TABLE ROLLBACK_TEST (X INT); args=None 

तो मैं डेटाबेस की जाँच की और यह सुनिश्चित करें पर्याप्त ROLLBACK_TEST तालिका नहीं मिली। इसे हटाने से समस्या हल हो गई:

$ manage.py dbshell 
mysql> DROP TABLE ROLLBACK_TEST; 
संबंधित मुद्दे