当前位置: 首页>>技术问答>>正文


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

问题描述

我最近买了一台新机器,现在想在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服务器时,我得到:

ruby-on-rails,postgresql,ubuntu,postgresql-9.1,rails-postgresql

最佳解决方法

首先,安装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:

次佳解决方法

寻找相同答案时,我碰到了您的问题。我试图按照@ prasad.surase给您的指示进行操作。我发现的问题是,ppa存储库很快就会在12.04 LTS上贬值。相反,我找到了此链接,它确实有所帮助。

PostgreSQL setup for Rails development in Ubuntu 12.04

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

    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; 
    

要结束postgresql会话,请输入\q

更新用户密码

alter user username with password ‘new password’;

第三种解决方法

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7280.html,未经允许,请勿转载。