Django数据库迁移 从SQLite3至PostgreSQL
步骤:
备份数据库
python manage.py dumpdata > dump.json
修改settings.py文件中默认数据库的配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '<数据库名称>', 'USER': '<用户名>', 'PASSWORD': '<密码>', 'HOST': '', 'PORT': '', } }
初始化postgre数据库
python manage.py migrate --run-syncdb
导入数据库
python manage.py loaddata dump.json
遇到问题:
1. loaddata过程报错
django.db.utils.DataError: Problem installing fixture 'D:\XXX\test.json': Could not load users.User(pk=测试): 错误: 对于可变字符类型来说,值太长了(50)
解决办法:
修改model类中对应的字段的max_length属性值,然后更新数据库,重新执行loaddata操作
python manage.py makemigrations
python manage.py migrate