Postgresql 当razor用户可以登录到数据库时,razor admin迁移数据库在识别错误时失败

Postgresql 当razor用户可以登录到数据库时,razor admin迁移数据库在识别错误时失败,postgresql,razor,puppet,Postgresql,Razor,Puppet,我最近尝试使用此处提供的文档设置Razor服务器: 我首先在Vagrant上重新安装了CentOS 6,然后安装了PostgreSQL server和客户端。然后我从文档中安装了puppet labs RPM。我使用以下方法创建了用户: su - postgres createuser -P razor createdb -O razor razor_prd 然后,我编辑了/etc/razor/config.yml文件,以在数据库中反映razor用户的razor密码。然后,当我以root

我最近尝试使用此处提供的文档设置Razor服务器:

  • 我首先在Vagrant上重新安装了CentOS 6,然后安装了PostgreSQL server和客户端。然后我从文档中安装了puppet labs RPM。我使用以下方法创建了用户:

    su - postgres
    createuser -P razor
    createdb -O razor razor_prd
    
    然后,我编辑了
    /etc/razor/config.yml
    文件,以在数据库中反映razor用户的razor密码。然后,当我以root、postgres和razor的身份执行数据库迁移时,我在问题开头的要点中列出了不同的错误

    [vagrant@centos6 ~]$ sudo su - razor -c "razor-admin --environment production migrate-database"
    Sequel::DatabaseConnectionError: Java::OrgPostgresqlUtil::PSQLException: FATAL: Ident authentication failed for user "razor"
                                  make_new at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool.rb:99
                                  make_new at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:158
                                 available at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:137
                                   acquire at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:127
                                      sync at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:194
                               synchronize at org/jruby/ext/thread/Mutex.java:149
                                      sync at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:194
                                   acquire at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:126
                                      hold at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:94
                               synchronize at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/connecting.rb:234
                            server_version at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/adapters/shared/postgres.rb:442
      supports_create_table_if_not_exists? at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/adapters/shared/postgres.rb:458
                             create_table? at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/schema_methods.rb:211
                            schema_dataset at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/extensions/migration.rb:585
                                initialize at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/extensions/migration.rb:443
                                initialize at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/extensions/migration.rb:505
                                       run at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/extensions/migration.rb:390
                                     apply at /opt/razor/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/extensions/migration.rb:361
                                    (root) at /opt/razor/bin/razor-admin:41
                                      call at org/jruby/RubyProc.java:271
                                    (root) at /opt/razor/bin/razor-admin:84
    
    不过,我可以以razor用户的身份登录数据库并四处查看,我已经将razor用户的密码重置为postgres,并且仍然可以以razor用户的身份登录。但是,我一直遇到上面列出的错误。我做错了什么

    --编辑2015-08-18-- 我在pg_hba.conf中的其他条目上方添加了这些行

    # TYPE  DATABASE        USER            ADDRESS                METHOD
    local   all             all                                    trust
    host    all             all             127.0.0.1/32           trust
    
    现在,我得到一个SQL错误,它说:

    E, [2015-08-19T16:26:10.028000 #2203] ERROR -- razor.sequel: Java::OrgPostgresqlUtil::PSQLException: ERROR: syntax error at or near "DEFERRABLE"
      Position: 95: ALTER TABLE "policies" DROP CONSTRAINT "policies_rule_number_key", ADD UNIQUE ("rule_number") DEFERRABLE INITIALLY DEFERRED
    I, [2015-08-19T16:26:10.046000 #2203]  INFO -- razor.sequel: (0.003000s) ROLLBACK
    Sequel::DatabaseError: Java::OrgPostgresqlUtil::PSQLException: ERROR: syntax error at or near "DEFERRABLE"
      Position: 95
    

    我相信这与Razor中的SQL有关

    我要做的就是将数据库更新到最新版本。CentOS default repos中的PostgreSQL版本为8.4,已弃用。然后,我还必须将本地设置和主机设置再次列为白名单,以确保信任。然后重新启动PostgreSQL,迁移就成功了