【发布时间】:2020-06-27 10:46:58
【问题描述】:
当我尝试更新我的数据库架构时出现以下错误:
SQLSTATE[HY000]: General error: 1833 Cannot change column 'IdEcole': used in a foreign key constraint 'appartient_ibfk_2' of table 'tuteure.appartient'
但是,我没有任何东西可以使 IdEcole AUTO_INCREMENT(在数据库或我的实体中,仅在迁移中。
当我执行以下行 php bin/console doctrine:schema:update --dump-sql 时,我得到以下响应:
ALTER TABLE Ecole CHANGE IdEcole IdEcole INT AUTO_INCREMENT NOT NULL;
那么我该如何编辑这一行来删除它呢?这条线存储在哪里以及它来自哪里?
【问题讨论】:
-
错误信息很清楚 table 'tuteure.appartient' ** has a **foreign key namend 'appartient_ibfk_2' of ** 引用了列 **表IdEcole的IdEcole
-
它来自 Doctrine 识别数据库的实际状态与您通过代码配置的状态之间的差异。您如何使用注释配置实体?
-
但是我没有任何命令可以覆盖 IdEcole 中的约束
-
@El_Vanja 我没有手动配置我的实体,我导入了我现有的 sql 文件
-
即使它们是生成的,信息也会写入某处。您的实体中是否有注释,或者它是否写在 XML 文件中?无论是哪个,检查您的
IdEcole是否在某处指定了GeneratedValue。
标签: php mysql sql symfony symfony4