问题:迁移和创建表格,提示相关字段已存在

需要新建roder表,进行迁移和创建表格,提示相关字段已存在,可以通过以下方法解决:


问题原因:之前添加富文本编辑器,需要在tb_Goods表中加入富文本相关字段(desc_detail 、desc_pack、desc_service)。如果在这些新增字段前执行了导入测试数据的脚本文件,会导致python migrate失败,提示相关字段已存在(只做了makemigrations迁移动作,还没有进行migrate创建动作,这三个字段就在数据库中出现了,感觉是mysql的bug)


暴力方法:


1、删除并新建同名的数据库;
2、删除各个应用中migrations文件夹里的文件;
3、执行迁移和创建的命令。
4、导入测试数据和地区数据


可能遇到的问题:
  导入测试数据,出现错误提示:
  ERROR 1217 (23000) at line 5: Cannot delete or update a parent row: a foreign key constraint fails


原因:order表中设置了外键引用 SKU 表的字段,形成了外键约束。而执行测试数据导入脚本时,脚本先删除表,再重新创建,再导入测试数据,因为有外键约束,所以导致SKU表无法删除(脚本文件第5行正是删除SKU表的操作)


解决方法1:
在终端窗口中,手动删除SKU表
1、进入数据库,执行关闭外键检查命令:  SET FOREIGN_KEY_CHECKS = 0;
2、执行删除SKU表命令 :drop table tb_sku;
3、打开外键检查命令:SET FOREIGN_KEY_CHECKS = 1;
4、重新执行导入测试数据脚本。


解决方法2:
分步迁移:
1、删除并创建数据库、迁移创建表、导入测试数据,之后再创建order应用,进行order表的迁移和创建表(已创建好order应用的,可以先注释掉models中的代码,最后再迁移)。

猜你喜欢

转载自blog.csdn.net/caomei_huacha/article/details/80937241