mysqlからpostgresqlへの移行

尊敬されるコミュニティにこんにちは!

ある時点で、django上のアプリケーションデータベースをmysqlからpostgresqlに転送する必要がありました。 この問題に対する最初の2つのアプローチは失敗しましたが、データの整合性を理解し、 manage.py syncdbmanage.py migrate問題を根絶することがmanage.py migrate

最初の実行で、SQLシートをpostgresqlダイアレクトに変換してデータベースを転送しようとしました。
2回目の./manage.py dumpdataでは、. ./manage.py dumpdataを使用して転送しようとしましたが、キーのエラー、無効なデータが絶え間なく./manage.py dumpdataました(データベースに多くの手動変更がありました)。

2回目と3回目の呼び出しの間に多くの時間が経過し、問題に関する最後のグーグルでこの記事が表示されました 。 道徳的に、私はギガバイトの行ごとのfootcloths sql / ymlを分析して解析する準備ができていましたが、このプロセスには空白がありました...そしてまだプロセスのシンプルさを試してみることにしました。

さあ、行こう(すべてがvirtualenvで行われ、空のデータベースがpostgresqlで作成された):
 $ pip install py-mysql2pgsql $ py-mysql2pgsql No configuration file found. A new file has been initialized at: mysql2pgsql.yml Please review the configuration and retry... $ vim mysql2pgsql.yml $ py-mysql2pgsql -v -f mysql2pgsql.yml 


5分間待機した後(すべてが仮想マシンで行われ、それほど高度な構成ではありませんでした)。 : "created" NOT NULLエラーで数回飛び: "created" NOT NULL私の場合、これはマッスルテーブルのエントリを削除することで解決できます。

新しいデータベース構成: manage.py run_gunicorn確認した後、すべてがエラーなしで開始されます。 次は最適化の時間です。

この説明が、同様の問題に遭遇した人に役立つことを願っています。

Source: https://habr.com/ru/post/J198366/


All Articles