私はdbをsqliteからmysqlに移行する必要があります。そこにあるさまざまなツール/スクリプトは多すぎて、最も安全で最もエレガントなソリューションを簡単に見つけることができません。
これはニース http://djangosnippets.org/snippets/14/ のように思えましたが、心配なアップデートを取得してから3年になるようです。
Django 1.1.1で信頼できることがわかっているソリューションを推奨できますか?
実行:
python manage.py dumpdata > datadump.json
次に、settings.pyをmysqlデータベースに変更します。
最終的に:
python manage.py loaddata datadump.json
いくつかのハード検索の後、私はいくつかの問題を抱えていました。
私の式は
python manage.py dumpdata > datadump.json
_python manage.py migrate --run-syncdb
_シェルでこのスニペットを使用してcontentypeデータを除外する
_python manage.py Shell
_
from Django.contrib.contenttypes.models import ContentType ContentType.objects.all().delete() quit()
_python manage.py loaddata datadump.json
_
お役に立てれば幸いです。
これは、他の場所で説明されているContentType
問題を回避するためのより適切な方法です。
./manage.py dumpdata --exclude contenttypes --exclude auth.permission --exclude sessions --indent 2 > dump.json
次に:
./manage.py loaddata dump.json
SqliteからMySQL、YMMVに移行するために必要な手順の(より詳しい)リスト:
SET GLOBAL FOREIGN_KEY_CHECKS = 0;
_from Django.contrib.contenttypes.models import ContentType
_ ContentType.objects.all().delete()
quit()
cat datadump.json | python -m json.tool > datadump_pretty.json
_mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -P 1234 -u root -p --protocol=tcp
_ _mysql -P 1234 -u root -p -e "flush tables" --protocol=tcp
_