73

我目前在 Ubuntu 12.04 中通过 RVM 安装了 Ruby on Rails。默认数据库是在 SQLite3 中设置的,但我想切换到 PostgreSQL 以便推送到 Heroku。我怎样才能做到这一点?

4

3 回答 3

168

以下是我遵循的步骤:

安装 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在app目录下修改

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

创建数据库和迁移

$ 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

于 2012-06-19T00:15:13.673 回答
6

对于打开此线程的所有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

因为没有官方的 Postgres 存储库Ubuntu 13.10

然后按照Nick说明创建用户(您也可以指定密码):

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

注意:将gotqn以上内容替换为whoami结果:

在此处输入图像描述

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

rails new Demo -d postgresql

上面的代码会自动将pggem 添加到您的文件中GemFile并创建适当的database.yml文件:

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

注意:您需要更改用户名并指定正确的密码(如果已设置)。

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

于 2013-12-08T17:02:32.267 回答
2

sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/precision-pgdg main' > /etc/apt/sources.list.d/pgdg.list"

wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key 添加 -

sudo apt-get 更新

sudo apt-get install postgresql-common

sudo apt-get install postgresql-9.3 libpq-dev

于 2015-02-08T16:21:12.810 回答