我今天遇到了一个问题,为此我想分享解决方案:
doctrine:schema:update
抛出此错误:
Duplicate table: 7 ERROR: the relation abc already exists.
就我而言,这是在从PostgreSQL 9.4升级到9.5以及从Symfony 2.7升级到2.8之后发生的。
过了一会儿,我发现它与这个问题有某种关系: Doctrine 2.2 wants to recreate all my tables
详细说明:
doctrine:schema:update
正常工作(即创建所有内容)。schema:update
时答案 0 :(得分:0)
这是我的答案 - 感谢@tetranz:How do I specify which schema to use for Doctrine 2.2 / Symfony 2.2 and PostgreSQL?:
File
> Open postgresql.conf
(此文件位于数据库数据所在的位置)。search_path
的设置(它位于顶部)。"$user", public
修改为public
我的猜测:
当正常"运行"时,Doctrine确实找到了表,因为我确实在配置文件(* .yml)中指定了模式。但是当查找带有schema:update
的表时,Doctrine省略了模式,从而回退到PostgreSQL的默认搜索路径,即"$user"
(即当前PostgreSQL用户的用户名,通常postgres
)。所以对我来说,这看起来像是一个主义错误。