SQLite3のデータをdumpしてMySQLに移行する
https://qiita.com/nnsnodnb/items/9e99e7f0ca3f82bf2171%C2%A0%C2%A0
そこで、以下のようにjsonファイルでエクスポート/インポートしたらできました。
1.仮想環境に入ってから以下を実行する。
(venv)$ python manage.py dumpdata > datadump.json
2.MySQL内にDBをCREATEしておきます。
mysql > CREATE DATABASE dbname CHARACTER SET utf8mb4;
3.次にsettings.pyを編集してDBをMySQLに変更します。
※先にMySQL内にインポートするDBをCREATEしておくのを忘れないようにします。
4.Migrateします。
(venv)$ python manage.py migrate
※このままでloaddataをするといかのようなエラーが発生するので、手順4のようにContentTypeを削除します。
django.db.utils.ProgrammingError: Problem installing fixture '/xxx/myproject/datadump.json': Could not load contenttypes.ContentType(pk=1): (1146, "Table 'dbname .django_content_type' doesn't exist")
(venv)$ python manage.py shell
そして以下を実行します。
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
>>> quit()
6.データをインポートします。
(venv) $ python manage.py loaddata datadump.json
これでOKでした。
参考
What's the best way to migrate a Django DB from SQLite to MySQL?
0 件のコメント:
コメントを投稿