在 Ubuntu 上为 Ruby on Rails 安装 PostgreSQL

目前我已经在 Ubuntu 12.04中通过 RVM 安装了 Ruby on Rails。默认的数据库是在 SQLite3中设置的,但是为了推送到 Heroku,我想切换到 PostgreSQL。我该怎么做呢?

38665 次浏览

以下是我遵循的步骤:

安装 PostgreSQL 和开发包

$ sudo apt-get install postgresql
$ sudo apt-get install libpq-dev

设置一个与我的 Ubuntu 登录相同的用户

$ sudo su postgres -c psql
postgres=# CREATE ROLE <username> SUPERUSER LOGIN;
postgres=# \q

修改 Gemfile

# Remove gem 'sqlite3'
gem 'pg'

修改应用程序目录中的 database.yml

development:
adapter: postgresql
encoding: unicode
database: appname_development
pool: 5
timeout: 5000
username: <username>
password:


test:
adapter: postgresql
encoding: unicode
database: appname_test
pool: 5
timeout: 5000
username: <username>
password:

运行 bundle install

$ bundle install

创建数据库和迁移

$ rake db:create:all
$ rake db:migrate

以下是我曾经帮助过的一些资源:
Http://mrfrosti.com/2011/11/postgresql-for-ruby-on-rails-on-ubuntu/
Http://railscasts.com/episodes/342-migrating-to-postgresql
Https://devcenter.heroku.com/articles/local-postgresql

对于所有打开此线程的 Ubuntu 13.10用户,请按照以下步骤安装 postresql:

sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common -t saucy
sudo apt-get install postgresql-9.2 libpq-dev

因为 Ubuntu 13.10没有正式的 Postgres 仓库。

然后按照 Nick的解释创建用户(也可以指定密码) :

sudo su postgres -c psql
postgres=# CREATE ROLE gotqn SUPERUSER LOGIN;
postgres=# \password gotqn
postgres=# \q

注: 以 whoami结果取代以上的 gotqn:

enter image description here

创建 Rails 应用程序的最简单方法是指定使用 postgresql,如下所示:

rails new Demo -d postgresql

上面的代码将自动添加 pg gem 在您的 GemFile和创建适当的 database.yml文件:

development:
adapter: postgresql
encoding: unicode
database: Demo_development
pool: 5
username: gotqn
password: mypass

注意: 如果已经设置了用户名,则需要更改用户名并指定正确的密码。

然后运行 rake db:create并启动 Rails 服务器。

Sudo sh-c“ echo‘ deb http://apt.postgresql.org/pub/repos/apt/ Precision-pgdg main’>/etc/apt/sources.list.d/pgdg.list”

Wget —— static-O-http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add-

Sudo apt-get 更新

Sudo apt-get install postgreql-common

Sudo apt-get install postgreql-9.3 libpq-dev