Southを使用してこのエラーを確認するのにうんざりしました。はい、PostgreSQLに切り替えるとエラーがなくなりました!
上記のコメントで提案されたRubyで書かれたmysql2postgresアプリは、私には機能しませんでした(実行され、画面に詳細が出力されますが、データの行はコピーされません)。理由はわかりません。しかし、喜んでそれのPythonの書き直しが完璧に機能しました(私にとっては、最終的に):
http://pypi.python.org/pypi/py-mysql2pgsql
私が見つけた唯一の落とし穴は:
最初は、syncdbを介してPostgreSQLデータベースにテーブルを設定し、データのみを移行するのが最も安全だと思いました。これを試しましたが、テーブルはアルファベット順に移行され、一部のテーブルの外部キー制約に違反しています(行はまだインポートされていないテーブルの行に関連しています)。
次に、構造とデータの移行を試しました。これは正常に移行されましたが、その後、Django、特に管理サイトでいくつかの問題が発生しました。移行スクリプトによって、Djangoとは異なるテーブル制約が作成されたようです。
mysql2pgsqlスクリプトをハッキングして、yaml config only_tables
で指定されたテーブルの順序を尊重することでこれを解決しました。 プロパティ...そしてsyncdb+データのみの移行を行います。試行錯誤の末、すべてが正常にインポートされるまで、移行のためにテーブルの順序を入れ替えました。
更新:
上記のハックのプルリクエストが受け入れられたので、メインバージョンから今すぐこれを行うことができます:
https://github.com/philipsoutham/py-mysql2pgsql