要把Django正在使用的数据库从sqlite3切换为mysql,基本思路就是先把sqlite3数据库里的数据使用Django的方式导出来,然后将Django的settings文件中的database backend改为mysql,最后再使用Django的方式将数据导入。
一,安装mysql数据库,Gemfield使用的是Mysql的Docker容器,Gemfield使用的mysql版本是5.7
设置mysql编码为utf8(默认为latin1)
1.修改mysql文件夹下: /etc/mysql/mysql.conf.d/mysqld.cnf
① 在[mysqld]上加入:
[client]
default-character-set=utf8
② 在[mysqld]下加入:
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
2.修改mysql文件夹下: ./conf.d/mysql.cnf
① 在[mysql]下加入:
default-character-set=utf8
3,验证
在mysql命令提示符中:show variables like '%char%';
可以看到除了filesystem为binary外,其它编码都是utf8
二,导出数据
1,Django的settings/databases为sqlite3时导出数据:
python manage.py dumpdata > datadump.json
2,修改settings/databases 成mysql:
'default':{'ENGINE':'django.db.backends.mysql','NAME':'gemfield','HOST':'ai.