Postgresql 当razor用户可以登录到数据库时,razor admin迁移数据库在识别错误时失败
我最近尝试使用此处提供的文档设置Razor服务器: 我首先在Vagrant上重新安装了CentOS 6,然后安装了PostgreSQL server和客户端。然后我从文档中安装了puppet labs RPM。我使用以下方法创建了用户: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
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,迁移就成功了