Django项目中将mysql数据库转为postgresql过程以及过程中遇到的bug新增数据id冲突,Key (id)=(1) already exists
Django项目中将mysql数据库转为postgresql过程以及在过程中遇到的问题
·
1. 备份mysql数据
使用Navicat转换,之前用Navicat 12由于版本过低连不了postgresql,所以换成了Navicat 16,
将mysql数据库中的数据导出csv
2. settings设置postgrespl:
DATABASES = {
'default': {
'ENGINE': "django.db.backends.postgresql",
'NAME': "mos", #数据库名字
'USER': "postgres", #账号
'PASSWORD': "***", #密码
'HOST': "127.0.0.1", #IP
'PORT': 5432, #端口
}
}
3. Django数据库的同步
python manage.py makemigrations
python manage.py migrate
这时报了一个错:
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "adminconnect_task_pkey"
DETAIL: Key (id)=(1) already exists.
发现是Django版本的问题,Django版本必须高于4.1
4. 同步数据到postgrespl
将第一步中导出的mysql数据导入到migrate新生成的数据表中
Thanks
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)