Django 数据库迁移到MySQL

November 28, 2019

默认Django数据库采用的是sqlite3,想迁移到mysql数据库。

创建Mysql数据库

这没啥好说的,肯定你要先有个数据库吧。

更改Django settings配置,修改为使用MySQL数据库

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xx',
        'USER': 'xx',
        'PASSWORD': 'xx',
        'HOST': 'xx',
        'PORT': 'xx'
    }
}

安装mysqlclient

1
pip install mysqlclient

执行迁移命令

这一步会把你应用 migrations 目录下的所有迁移文件应用到新的数据库中。

1
2
python manager.py makemigrations
python manager.py migrate

导入数据

上一步只是在新的数据库中生成了表结构,还没有数据。

先把settings改为原来的配置,这样才能导出原来的数据。然后执行 python manager.py dumpdata > data.json 命令。

再把settings改为mysql,执行 python manager.py loaddata data.json 命令,这样就完成了数据的迁移。