Saya bosan melihat kesalahan ini menggunakan Selatan dan ya, beralih ke PostgreSQL telah menghapusnya!
Aplikasi mysql2postgres, ditulis dalam Ruby, disarankan dalam komentar di atas tidak berfungsi untuk saya (itu akan berjalan, menampilkan beberapa detail ke layar tetapi tidak menyalin baris data apa pun, untuk saya). Tidak yakin mengapa. Tapi untungnya ada penulisan ulang Python yang bekerja dengan sempurna (untuk saya, akhirnya):
http://pypi.python.org/pypi/py-mysql2pgsql
Satu-satunya gotcha yang saya temukan adalah:
Awalnya saya pikir akan lebih aman untuk mengatur tabel di db PostgreSQL melalui syncdb dan kemudian memigrasikan data saja. Saya mencoba ini, tetapi tabel dimigrasikan dalam urutan abjad dan ini melanggar batasan kunci asing untuk beberapa tabel (baris berhubungan dengan baris dalam tabel yang belum diimpor).
Saya selanjutnya mencoba migrasi struktur+data. Ini bermigrasi dengan baik, tetapi saya menemui beberapa masalah di Django setelah itu, terutama situs admin. Sepertinya skrip migrasi telah membuat beberapa batasan tabel yang berbeda dari apa yang akan dimiliki Django.
Saya memecahkan ini dengan meretas skrip mysql2pgsql untuk menghormati urutan tabel yang diberikan dalam konfigurasi yaml only_tables
properti... dan kemudian melakukan migrasi syncdb + hanya data. Dengan coba-coba saya mengacak-acak urutan tabel untuk migrasi saya sampai semuanya berhasil diimpor.
PEMBARUAN:
Permintaan penarikan saya untuk peretasan yang dijelaskan di atas telah diterima sehingga Anda dapat melakukannya sekarang dari versi utama:
https://github.com/philipsoutham/py-mysql2pgsql