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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)