Django 数据库 sqlite 转 mysql

本贴最后更新于 1851 天前,其中的信息可能已经沧海桑田

网上的 百度出来结果十个有九个坑,还有一个半吊子。幸亏备份了,弄出了一个真实可行的

1.添加 mysql 做为 slave

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'slave': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'devops', 'USER': 'root', 'PASSWORD': 'ddddddd', 'HOST': '192.168.0.2', 'PORT': '3306', } }

2.安装 mysqlclient

pip install mysqlclient

3.迁移数据库到 slave

python manage.py migrate --database slave

4.确认是否有遗漏再执行一边

python manage.py makemigrations python manage.py migrate python manage.py migrate --database slave

5.导出数据

python manage.py dumpdata --database default > dumpdata20200305.json

6.导入数据到 mysql

python manage.py loaddata --database slave dumpdata20200305.json

mac 下会出现一个报错

第一行会有一个当前目录的字符串,删掉第一就可以了

7. 修改配置文件 settings.py

将配置修改 default 为 mysql

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'devops', 'USER': 'root', 'PASSWORD': 'xxxx', 'HOST': 'xxx', 'PORT': '3306', } }

8.访问测试

搞定收工!
image.png

  • Django
    47 引用 • 72 回帖 • 4 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...