2014-08-30 59 views
0

我刚刚在运行Ubuntu的Godaddy VPS上创建了一个新的RoR项目。该应用程序设置为运行已安装并正在运行的Postgres。Postgres Rails DB Bug

w当我做了初始前,我得到:

server$ bin/rake db:create db:migrate 
FATAL: role "root" does not exist 
Run `$ bin/rake db:create db:migrate` to create your database 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:898:in `rescue in connect' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `connect' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:568:in `initialize' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:435:in `new_connection' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:445:in `checkout_new_connection' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/........ 

这里是我的数据库阳明

development: 
    adapter: postgresql 
    encoding: utf8 
    database: project_development 
    pool: 5 
    username: philip 
    password: ###  
test: &TEST 
    adapter: postgresql 
    encoding: utf8 
    database: project_test 
    pool: 5 
    username: philip 
    password: ### - not real 

production: 
    adapter: postgresql 
    encoding: utf8 
    database: project_production 
    pool: 5 
    username: philip 
    password: ### 

我试图rootphilip
我已经在PG中创建了角色和用户。

+0

不管我的database.yml的,耙抱怨根 – Tithos 2014-08-30 17:40:36

+0

我想有另一个文件 – Tithos 2014-08-30 17:40:54

回答

1

在Ubuntu中,PostgreSQL的默认配置为允许通过Unix套接字本地连接只用相同的用户名作为身份验证连接Unix用户。

你在你的操作系统中运行你的应用程序为root。 PostgreSQL迫使你使用root作为数据库用户名。如果您希望它使用不同的数据库帐户,则需要以不同的用户身份运行您的应用。

显然,您的PostgreSQL服务器没有root帐户。

脏的修复可能是通过TCP/IP认证:设置host127.0.0.1database.yml,而这些限制将不会有任何效果。
规避它的另一种方法是编辑pg_hba.conf以使本地连接不需要“同一个用户”。

0

我重新开始删除PG中的所有角色。我重新创建我需要的东西,这是所有好的