我需要将我的数据库从sqlite迁移到mysql,而各种工具/脚本对我来说太多了,无法轻松找到最安全,最优雅的解决方案。
这对我来说似乎很不错http://djangosnippets.org/snippets/14/但是在获得令人担忧的更新后似乎还有3年......
你能推荐一个已知Django 1.1.1可靠的解决方案吗?
答案 0 :(得分:72)
执行:
python manage.py dumpdata > datadump.json
接下来,将settings.py更改为mysql数据库。
最后:
python manage.py loaddata datadump.json
答案 1 :(得分:35)
经过一番艰苦的搜索,我遇到了几个问题,我希望未来的答案看起来会让人觉得有用。
我的公式是
TBitmap.Handle
python manage.py dumpdata > datadump.json
在shell中使用此代码段排除内容类型数据
python manage.py migrate --run-syncdb
python manage.py shell
from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
quit()
希望能帮到你!
答案 2 :(得分:0)
从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
答案 3 :(得分:0)
这是避免其他地方描述的ContentType
问题的更整洁的方式:
./manage.py dumpdata --exclude contenttypes --exclude auth.permission --exclude sessions --indent 2 > dump.json
然后:
./manage.py loaddata dump.json