Django 数据库 sqlite 转 mysql

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

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

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 关注

相关帖子

欢迎来到这里!

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

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