Doctrine2 / DBAL + Postgresql - public。 Doctrine查询中缺少架构空查询的结果

时间:2017-10-18 18:24:55

标签: php postgresql doctrine-orm postgresql-9.6 dbal

在我的VPS服务器上查询负责计算已执行迁移的Doctrine查询不返回任何行。问题很奇怪,有时使用PHPStorm我也没有结果,但只有当我跳过公开时才会发生。架构。我无法使用public在Doctrine的配置表名称中设置。前缀是由于进一步的DBAL问题。 Localy我得到了相同版本的PgSQL 9.6和PHP 5.6,onle差异@VPS是PHP 7.1。

#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user", public'    # schema names
#default_tablespace = ''        # a tablespace name, '' uses the default
#temp_tablespaces = ''          # a list of tablespace names, '' uses

更改search_path会有所帮助,有时会导致行显示为查询的结果,但是Doctrine迁移仍然存在问题。

查询:

SELECT * FROM doctrine_migration_versions;  --  sometimes no results, even if ros actually exists
SELECT * FROM public.doctrine_migration_versions;   --  works always

提前感谢任何回答。

1 个答案:

答案 0 :(得分:0)

我发现了问题。问题是数据库用户与现有架构相同。这就是Postgres默认寻找用户命名架构并找到它的原因。改变postgres conf不要寻找用户而是公开。仅架构,解决问题'

#search_path = '"$user", public'    # schema names 

search_path = 'public'    # schema names