django.db.utils.OperationalError: (1060, “Duplicate column name ‘country_code‘“)

这个错误:

django.db.utils.OperationalError: (1060, "Duplicate column name 'country_code'")

说明你在运行 migrate 时,Django 尝试向数据库表中添加一个已经存在的列(country_code),可能的原因如下:
原因分析
1.你修改了模型字段名或添加字段,但之前已经手动或通过其他方式修改过数据库表;

2.你的 migrations 文件记录和数据库的实际结构不同步;

3.可能你已经把 country_code 添加进模型了,但忘了或手动回退了迁移记录。

✅ 解决方案
方法一:回退有问题的迁移,然后重建迁移文件
1.删除最近一次的迁移文件(在 core/migrations/ 或对应 app 的 migrations/ 文件夹中,非 init.py 的文件)。

2.然后重新生成:

python manage.py makemigrations

3.执行迁移:

python manage.py migrate	

方法二:直接手动编辑数据库(危险,仅推荐开发环境)
1.登录你的数据库(如使用 MySQL)

DESC xss_order;

2.检查是否已经有 country_code 字段。

3.如果你确认之前是手动或意外加过该字段,可以先在数据库中手动删除:

ALTER TABLE xss_order DROP COLUMN country_code;

然后重新运行迁移:

python manage.py migrate

方法三:伪迁移(跳过迁移步骤)
如果你知道数据库字段已经正确存在,你可以让 Django 假装迁移已完成:

python manage.py migrate your_app_name --fake

这不会真正修改数据库,只是记录迁移已完成。

你可能感兴趣的:(数据库开发报错信息整理,数据库,django)