【问题标题】:Doctrine2/DBAL + Postgresql - public. schema missing in Doctrine queries | Empty query's resultDoctrine2/DBAL + Postgresql - 公共。 Doctrine 查询中缺少模式 |空查询的结果
【发布时间】:2018-03-30 17:17:36
【问题描述】:

在我的 VPS 服务器上查询 Doctrine 的负责计算已执行迁移的查询不返回任何行。问题很奇怪,使用 PHPStorm 有时我也没有得到任何结果,但只有当我跳过 public 时才会发生这种情况。架构。我无法在 Doctrine 的配置表名称中设置 public。前缀由于进一步的 DBAL 问题。 Localy 我得到了相同版本的 PgSQL 9.6 和 PHP 5.6,唯一的区别@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

提前感谢您的回答。

【问题讨论】:

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


    【解决方案1】:

    我发现了问题。问题是数据库用户与现有模式相同。这就是为什么默认情况下 Postgres 正在寻找名为 schema 的用户并找到它的原因。将 postgres conf 更改为不查找用户而是公开的。仅架构,解决了“问题”

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

    到

    search_path = 'public'    # schema names 
    

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 2014-10-15
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 2015-05-12
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多