如何为本地Rails项目设置Postgres数据库?

时间:2013-11-13 12:19:43

标签: ruby-on-rails postgresql ubuntu postgresql-9.1 rails-postgresql

我最近买了一台新机器,现在想从Github处理我的项目。我很好奇如何在我的本地机器上正确设置Postgres数据库。我在Ubuntu(12.04)上安装了postgresqlpgadmin3libpq-dev

我拉下了项目:

git clone https://github.com/thebenedict/cowsnhills.git

并运行:

bundle

当我跑步时:

rake db:create && rake db:schema:load

我收到此错误:

rake db:create && rake db:schema:load
FATAL:  password authentication failed for user "cnh"
FATAL:  password authentication failed for user "cnh"
....

config/database.yml文件如下所示:

development:
  adapter: postgresql
  encoding: unicode
  host: localhost
  database: cnh_development
  pool: 5
  username: cnh
  password: cnh

test:
  adapter: postgresql
  encoding: unicode
  host: localhost
  database: cnh_test
  pool: 5
  username: cnh
  password: cnh

production:
  adapter: postgresql
  encoding: unicode
  host: localhost
  database: cnh_production
  pool: 5
  username: cnh
  password: cnh

设置Postgres数据库的正确方法是什么,以便我可以在本地计算机上运行此项目?

现在,当我启动Rails服务器时,我得到了:

enter image description here

3 个答案:

答案 0 :(得分:52)

我在寻找相同的答案时遇到了你的问题。我试图按照@ prasad.surase给你的指示。我发现的问题是ppa存储库将在12.04 LTS即将贬值。相反,我找到了这个链接,它真的有帮助。

PostgreSQL setup for Rails development in Ubuntu 12.04

  1. 通过包管理器安装postgresql和admin工具

    sudo apt-get install postgresql libpq-dev phppgadmin pgadmin3
    
  2. 以postgres用户身份登录postgresql提示

    sudo su postgres -c psql 
    
  3. 为您的项目创建postgresql用户

    create user username with password 'password';
    
  4. 使用与Ubuntu用户相同的名称和密码设置您的postgres用户,并使他成为postgres超级用户

    alter user username superuser; 
    
  5. 创建开发和测试数据库

    create database projectname_development;
    create database projectname_test; 
    
  6. 在数据库上为用户授予权限

    grant all privileges on database projectname_development to username;
    grant all privileges on database projectname_test to username; 
    
  7. 结束postgresql会话类型\q

    更新用户的密码

    alter user username with password ‘new password’;
    

答案 1 :(得分:18)

首先,安装postgresql
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update

#now install postgresql
sudo apt-get install postgresql-9.1 libpq-dev
在psql中创建一个新用户
sudo su postgres
createuser user_name #Shall the new role be a superuser? (y/n) y
的Gemfile
gem 'pg'

捆绑安装

development.yml
development:
  adapter: postgresql
  database: app_development
  pool: 5
  username: user_name
  password:

答案 2 :(得分:2)

您可以点击此链接http://www.cyberciti.biz/faq/howto-add-postgresql-user-account/

创建postgres用户并替换database.yml中的凭据