• Django 迁移错误 Cannot add foreign key constraint


    错误分析

    更换数据库后
    字符集错误
    就是原来的库和新的库在外键的字符集上不一样
     
    如图:
     

    解决方案:

    1.迁移先需要失败一次(既然出现了这个错误,说明已经迁移了一次)

    2.修改当前表外键字段的字符集(或者说COLLATE),修改为外键关联表的字符集

    1. 查看表的创建语句(主要是查看外键关联表主键的字符集)
      SHOW CREATE TABLE `user_group` (查看创建表的命令)
    2. 修改字符集
      ALTER TABLE user_group_info MODIFY employee_id VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    3.手动给新表添加外键约束

    alter table user_group_info add constraint `user_group_info_id_869a94b79388475b_fk_employee_info_id` foreign key (`employee_id`) REFERENCES `employee_info` (`id`) ON DELETE SET NULL ON UPDATE NO ACTION;

    4.第二次迁移加上fake

    python manage.py migrate --fake
     
  • 相关阅读:
    iOS开发-Sqlite
    iOS开发-HTTP协议
    iOS开发
    iOS 开发小记 (八)
    iOS
    iOS开发-基础框架
    Java门面模式
    Linux常用命令
    canal使用小结
    MySQL隔离级别的测试
  • 原文地址:https://www.cnblogs.com/fixdq/p/11703649.html
Copyright © 2020-2023  润新知