【发布时间】:2013-11-28 17:04:10
【问题描述】:
当我使用教义:模式:更新命令行生成表时,似乎 Doctrine(或 Symfony?)想要输入一个重新排列我的列的命令,将键放在它会出现的前面。我想知道是否,更有希望,我可以在哪里禁用环境的这个“功能”,所以当我去生成我的表时,它们会按照我输入到 orm 中的顺序保存。
我已经四处寻找这个问题,但似乎没有其他人能够根据我的能力提出这个问题,而且我不确定我需要 Doctrine 或 Symfony 的哪个捆绑包/部分改变它不想重新排列我的桌子。任何关于捆绑包的哪一部分将包含此逻辑,或者我可以添加什么选项来改变它的任何信息都将不胜感激,因为到目前为止我无法在文档中真正找到任何内容。
更新: 我做了一些调查,发现了一个与我类似的溢出问题,但不完全是。就我而言,我没有使用新的数据类型,唯一向前移动的列是我指定为键的列(主键或外键)。它给我的命令看起来与此非常相似,除了它对我的每一个键都执行此操作。
ALTER TABLE product_price CHANGE price price DECIMAL(10,2) DEFAULT NULL
Doctrine custom type always altering table
更新 2: 应要求提供的其他信息: 以 .orm.yml 格式运行 MySQL。
它想要设置的字段始终是关键字段,并且在我将它们更改回我想要/需要它们的顺序之后,它会觉得每次都需要重新排列列。
我不会更改有关字段的任何内容;它在初始创建时以及每当我需要运行架构更新时都会执行此操作,而无需对这些特定字段进行任何更改。
【问题讨论】:
-
我从未见过坚持重新排列我的专栏的教义。您使用的是什么 DBMS 和版本?列和属性映射之间的某些细节是否可能不同,例如,如果您更改了精度、可空性或默认值?
-
在您运行 ALTER TABLE 语句后是否学说:schema:update 停止抱怨,或者它是否一遍又一遍地建议相同的 SQL 语句。您的映射配置是什么(注释或 .yml 结构)。简而言之:需要更多信息才能了解您的情况。 ;-)
-
在主要问题中添加了更多信息,希望现在已经足够了,如果没有,请告诉我还需要什么,我会添加我可以添加的内容。
标签: php mysql symfony doctrine-orm