Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 教条重新创建了相同的索引_Symfony_Doctrine Orm - Fatal编程技术网

Symfony 教条重新创建了相同的索引

Symfony 教条重新创建了相同的索引,symfony,doctrine-orm,Symfony,Doctrine Orm,当我运行条令模式更新时,我得到了需要执行的奇怪查询,但它们基本上只是重做已经完成的事情,还是没有 php app/console doctrine:schema:update --dump-sql DROP INDEX idx_26d7e8feab772a3c ON notify; CREATE INDEX IDX_217BEDC8AB772A3C ON notify (notifyUser_id); DROP INDEX idx_26d7e8fea76ed395 ON notify; C

当我运行条令模式更新时,我得到了需要执行的奇怪查询,但它们基本上只是重做已经完成的事情,还是没有

php app/console doctrine:schema:update --dump-sql 


DROP INDEX idx_26d7e8feab772a3c ON notify;
CREATE INDEX IDX_217BEDC8AB772A3C ON notify (notifyUser_id);
DROP INDEX idx_26d7e8fea76ed395 ON notify;
CREATE INDEX IDX_217BEDC8A76ED395 ON notify (user_id);
DROP INDEX idx_26d7e8fe6bf700bd ON notify;
CREATE INDEX IDX_217BEDC86BF700BD ON notify (status_id);


    "require": {
    "php": ">=5.3.3",
    "symfony/symfony": "~2.5.3",
    "doctrine/orm": "~2.2,>=2.2.3",
    "doctrine/doctrine-bundle": "~1.2",
    "gedmo/doctrine-extensions": "2.3.*@dev",
    "stof/doctrine-extensions-bundle": "~1.1@dev",
},
此行为阻止我使用--force更新doctrine模式,因为存在外键,我会遇到以下错误:

[PDOException]                                                                        
  SQLSTATE[HY000]: General error: 1553 Cannot drop index 'IDX_A37CA197A76ED395': neede  
  d in a foreign key constraint

这可能是在过去更新DB相关供应商后开始发生的,但我直到现在才注意到。

我可以向您确认,这可能是在您升级Doctrine供应商时发生的

doctrine/dbal 2.5.1版本解决了此问题

您只需安装v2.5.1条令/dbal依赖项。
然后只需执行“php应用程序/控制台原则:模式:更新--force”,您的问题就会得到解决…

@theapprenticecorder@Trki此问题可以通过命令解决

$ app/console doctrine:schema:update --force --complete

哪一个是最好的解决方案。

更新dbal对我来说不起作用。虽然我并没有试图强制但转储sql以查看代码是否消失了。