2015-01-20 6 views
6

मुझे कुछ मॉडलों को एक ऐप से दूसरे में ले जाना पड़ा, और मैंने इस उत्तर https://stackoverflow.com/a/26472482/188614 पर दिए गए निर्देशों का पालन किया।
असल में मैंने python manage.py makemigrations द्वारा उत्पन्न माइग्रेशन का उपयोग किया, उन्हें state_operations के अंदर लपेट लिया, और पुरानी तालिका के नाम के साथ 'db_table' मेटा विकल्प जोड़ा।
सबकुछ ठीक काम करता है, new_app पर मॉडल पुराने टेबल का उपयोग कर क्रूर रूप से उपयोग कर रहे हैं।
लेकिन अगर मैं python manage.py makemigrations new_app चलाने यह उनके None के रूप में नाम बदलने प्रत्येक तालिका के लिए एक AlterModelTable प्रवास, इस तरह बनाता है:Django 1.7 makemigrations किसी भी को टेबल का नाम बदलने के लिए

migrations.AlterModelTable(
    name='cidade', 
    table=None, 
), 

यह एक बग, या अपेक्षित व्यवहार है?

उत्तर

5

मुझे बस यह समस्या थी।

जवाब आप निम्नलिखित थे new_app में प्रवास में इसमें शामिल हैं:

options={ 
    'db_table': 'newapp_themodel', 
}, 

यह विकल्प dict मूल्यों अपने मॉडल पर Meta वर्ग द्वारा निर्धारित प्रदर्शित करना चाहिए। मेरे मामले में, मैं मेटा में db_table सेट नहीं कर रहा था, लेकिन विकल्प कोड को अंधाधुंध रूप से कॉपी किया था।

आप Meta में यह सेट नहीं है या आप Meta में सेट मान से मेल करने के लिए या तो db_table मूल्य को दूर करने के newapp के लिए अपने प्रवास में विकल्पों को अपडेट करने की जरूरत है।

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