在 Ubuntu 上为 Ruby on Rails 安装 PostgreSQL

Posted

技术标签:

【中文标题】在 Ubuntu 上为 Ruby on Rails 安装 PostgreSQL【英文标题】:Installing PostgreSQL on Ubuntu for Ruby on Rails 【发布时间】:2012-06-21 00:15:24 【问题描述】:

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

【问题讨论】:

【参考方案1】:

以下是我遵循的步骤:

安装 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

创建数据库和迁移

$ 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-postgresqlhttps://devcenter.heroku.com/articles/local-postgresql

【讨论】:

如果你想在运行CREATE ROLE:ALTER ROLE &lt;username&gt; WITH PASSWORD '&lt;yourpassword&gt;';之后添加密码使用这个命令然后显然将你的密码添加到database.yml 或者,如果您只是第一次创建角色并且还想输入密码:CREATE ROLE &lt;username&gt; SUPERUSER LOGIN PASSWORD '&lt;yourpassword&gt;'; 致命:用户“真棒”的对等身份验证失败 为我工作。我使用以下命令创建了我的 psql 用户:CREATE ROLE Alex SUPERUSER LOGIN;。在 database.yml 中,我还将我的用户名设置为 Alex 并得到与 jmontross 相同的错误。然后我将其更改为alex,一切正常。我还必须运行rake db:migrate RAILS_ENV=test。另请注意 - 此方法将数据库从 sqlite3 迁移到 postgres,但不会迁移数据库中的实际数据。要迁移它,请参阅答案中提到的 railscast。 2 年后,这个答案中唯一有点旧的就是 postgresql 版本。使用命令sudo apt-get install postgresql 将安装最新的可用版本。【参考方案2】:

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

注意:将上面的gotqn 替换为whoami 结果:

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

rails new Demo -d postgresql

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

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

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

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

【讨论】:

【参考方案3】:

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 add -

sudo apt-get 更新

sudo apt-get install postgresql-common

sudo apt-get install postgresql-9.3 libpq-dev

【讨论】:

以上是关于在 Ubuntu 上为 Ruby on Rails 安装 PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu Ruby On Rails安装和配置

Ubuntu Ruby On Rails安装和配置

ubuntu 14.04中安装 ruby on rails 环境

ubuntu中ruby-on-rails的安装

markdown Instalar Ruby,Ruby on Rails和PostgreSQL(Mac y Debian / Ubuntu)

如何使用链接/按钮更改列属性 - Ruby on Rails