当我去使用学说产生一个表:模式:更新命令行,看来主义(或Symfony的?)希望在重新排列我的专栏的命令扔,把钥匙朝它会出现在面前。我想知道是否,更有希望,在哪里,我可以禁用环境的这个“功能”,所以当我去生成我的表时,它们按照我进入orm的顺序保存。
我一直在寻找这个问题,但似乎没有其他人能从我能够提出的方面得到它,而且我不确定我需要什么样的Doctrine或Symfony。改变,让它不想重新安排我的桌子。关于bundle的哪个部分包含这个逻辑的任何信息,或者我可以添加什么选项来改变它将会非常感激,因为到目前为止我无法在文档中找到任何内容。
更新 我做了一些调查,我发现了一个类似于我的溢出问题,但并不完全。在我的情况下,我不使用新的数据类型,并且向前移动的唯一列是我指定为键(主键或外键)的列。它抛出的命令看起来非常类似于此,除了它对我的每一个键都这样做。
ALTER TABLE product_price CHANGE price price DECIMAL(10,2) DEFAULT NULL
Doctrine custom type always altering table
更新2:根据要求提供的其他信息: 以.orm.yml格式运行MySQL。
它想要设置的字段始终是关键字段,在我将它们更改回我想要/需要它们的顺序之后,它感觉需要每次重新排列列。
我不改变任何关于田地的事情;它在初始创建时以及每当我需要运行模式更新时都会这样做,而不会对这些特定字段进行任何更改。
答案 0 :(得分:1)
我做了一些挖掘,我认为你无法控制它:
https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Schema/Table.php#L555
由此判断,顺序是PK,FK和其他列,按此顺序。 扫描原始逻辑页面很困难,所以我可能错过了一些东西,但据我所知,它并没有按照任何配置来决定订单。
答案 1 :(得分:1)
我认为你应该在生产中使用这些方法之一