Ответ 1
Execute:
python manage.py dumpdata > datadump.json
Затем измените ваши settings.py на базу данных mysql.
Наконец:
python manage.py loaddata datadump.json
Мне нужно перенести свой db из sqlite в mysql, а для различных инструментов/скриптов для меня слишком много, чтобы легко найти самое безопасное и элегантное решение.
Мне показалось приятным http://djangosnippets.org/snippets/14/, но, похоже, прошло 3 года с момента получения обновления, которое вызывает беспокойство.
Вы можете рекомендовать решение, которое, как известно, является надежным с Django 1.1.1?
Execute:
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
Исключить данные типа содержимого с помощью этого фрагмента в оболочке
python manage.py shell
from django.contrib.contenttypes.models import ContentType ContentType.objects.all().delete() quit()
python manage.py loaddata datadump.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
: cat datadump.json | python -m json.tool > datadump_pretty.json
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_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
Это более удобный способ избежать описанных выше проблем с ContentType
:
./manage.py dumpdata --exclude auth.permission --exclude contenttypes --exclude sessions --indent 2 > dump.json
Затем:
./manage.py loaddata dump.json