繁体   English   中英

为什么复合主键中的列顺序对Doctrine至关重要?

[英]Why does the column order in a composite primary key matter to Doctrine?

我试图在数据库优先实现上使用Doctrine 2.3.2建立一个项目。 生成xml和映射之后,然后调用orm:validate-schema,它向我显示映射正确,但是数据库验证失败。 在使用架构工具找出问题所在时,我发现有2个问题反复出现:

  1. 将我所有尚未在255的varchar更改为varchar(255)
  2. 删除例如带有列(A,B,C)的主键,然后使用相同的列以不同的顺序(B,A,C)创建一个新的主键

这两件事似乎都无济于事。 为什么教义会强迫我以似乎毫无意义的方式更改自己的模式?

这两种解决方案都无需更改数据库架构即可:

  1. 转换映射似乎未将length属性添加到id字段-将其添加到xml
  2. 这似乎是由于表中各列的顺序与主键中各列的顺序之间的差异引起的。 重新排列xml条目的顺序以匹配主键的顺序。

我假设必须达到2#1是一个错误-我将尽快报告。 但是,#2是不是在bug之上,还是以某种方式改变了秩序而违反了Doctrine的逻辑?

我对这个问题的思考越深,我越相信它是一种疏忽,而不是故意的。 我当时以为是我缺少的东西,但我认为这些是图书馆的问题,因此将它们添加到了教义的JIRA中。

编辑:每个请求的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM