Djangoのdump機能で簡単にデータ移行

Djangoサーバーの移管を行いたく、さらにはDBサーバーもPostgresからMySQLにしたいからどうしようかと悩んでいたのですが、Djangoデータのdumpとloadの機能を使ったら簡単にできたのでメモです。なお、Django環境はDocker内で動いています。

データのdump

初めにモデルを指定せずに全部を抜き出して取り込んだらエラーが発生したので、必要なモデルのデータだけを抜き出すことにする。コマンドは以下

$ sudo docker exec contener_1 python manage.py dumpdata appname.classname > class.json

docker exec でコマンドを投入するコンテナを指定、manage.py dumpdata アプリケーション名.クラスネーム で取り出すことができる。必要なデータの数だけ実行する。

データのload

データのロードは以下のコマンドとなるが、コンテナから読めることが必要 自分はstaticにファイルを置いて読ませてしまった。依存のないマスター系のデータから読み込むと良いと思う。

$ sudo docker exec -it contener_1 bash 
contener_1$ python manage.py loaddata /static/class.json

投稿を作成しました 112

コメントを残す

関連する投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る
%d人のブロガーが「いいね」をつけました。