要把Django正在使用的数据库从sqlite3切换为mysql,基本思路就是先把sqlite3数据库里的数据使用Django的方式导出来,然后将Django的settings文件中的database backend改为mysql,最后再使用Django的方式将数据导入。
导出数据
Django的settings/databases为sqlite3时导出数据
python manage.py dumpdata > datadump.json
导入准备
1.修改settings/databases成mysql:
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'HOST': '数据库地址',
'USER': '用户',
'PASSWORD': '密码',
'PORT': '端口',
'charset':'编码',
}
2.进入mysql,创建数据库
CREATE DATABASE 数据库名 CHARACTER SET 编码 COLLATE 编码;
3.生成表结构
python manage.py makemigrations
python manage.py migrate
4.删掉mysql中和sqlite3中重复的表
python manage.py shell
from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
导入数据
python manage.py loaddata datadump.json
Q.E.D.