मैं दक्षिण का उपयोग करते हुए इस त्रुटि को देखकर थक गया हूँ और हाँ, PostgreSQL पर स्विच करने से यह गायब हो गया है!
रुबी में लिखा गया mysql2postgres ऐप, उपरोक्त टिप्पणियों में सुझाया गया मेरे लिए काम नहीं करता है (यह चलेगा, स्क्रीन पर कुछ विवरण आउटपुट करेगा लेकिन मेरे लिए डेटा की किसी भी पंक्ति की प्रतिलिपि नहीं करेगा)। यकीन नहीं है कि क्यों। लेकिन खुशी की बात है कि इसका एक पायथन पुनर्लेखन है जो त्रुटिपूर्ण रूप से काम करता है (मेरे लिए, अंततः):
http://pypi.python.org/pypi/py-mysql2pgsql
मुझे मिला एकमात्र गोचा था:
प्रारंभ में मैंने सोचा था कि PostgreSQL डीबी में सिंकडीबी के माध्यम से टेबल सेट करना सबसे सुरक्षित होगा और फिर केवल डेटा माइग्रेट करना होगा। मैंने यह कोशिश की, लेकिन तालिकाओं को वर्णानुक्रम में माइग्रेट किया गया है और यह कुछ तालिकाओं के लिए विदेशी कुंजी बाधाओं का उल्लंघन करता है (पंक्तियां अभी तक आयात नहीं की गई तालिकाओं में पंक्तियों से संबंधित हैं)।
मैंने अगली बार एक संरचना + डेटा माइग्रेशन की कोशिश की। यह ठीक से माइग्रेट हो गया, लेकिन मुझे बाद में Django में कुछ समस्याओं का सामना करना पड़ा, खासकर व्यवस्थापक साइट। ऐसा लग रहा था कि माइग्रेशन स्क्रिप्ट ने Django की तुलना में कुछ अलग टेबल की कमी पैदा कर दी थी।
मैंने yaml config only_tables
में दिए गए तालिकाओं के क्रम का सम्मान करने के लिए mysql2pgsql स्क्रिप्ट को हैक करके इसे हल किया। संपत्ति ... और फिर एक सिंकडीबी + डेटा-केवल माइग्रेशन कर रहा है। परीक्षण और त्रुटि से मैंने अपने माइग्रेशन के लिए तालिकाओं के क्रम में तब तक फेरबदल किया जब तक कि वे सभी सफलतापूर्वक आयात नहीं हो गए।
अद्यतन:
उपरोक्त वर्णित हैक के लिए मेरा पुल अनुरोध स्वीकार कर लिया गया है ताकि आप इसे अब मुख्य संस्करण से कर सकें:
https://github.com/philipsoutham/py-mysql2pgsql