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