原文链接: How To Use PostgreSQL with Your Ruby on Rails Application on Ubuntu 14.04
Ruby on Rails 使用 sqlite3 作为默认数据库。在很多情况下 sqlite3 都很好用,不过也可能会不满足你的应用。如果你的应用要求可扩展性,集中化,可控性 (或者其它特性) 等等由客户端/服务端 SQL 数据库,比如 PostgreSQL 或 MySQL 提供的特性。你就需要执行一些额外的步骤去搭载并运行它们。
此教程展示如何在 Ubuntu 14.04 服务器上建立一个 Ruby on Rails 的开发环境,来让你的应用程序使用 PostgreSQL 数据库。首先,我们简述如何安装和配置 PostgreSQL,然后我们会展示如何创建一个使用 PostgreSQL 作为数据库服务器的 rails 应用程序。
此教程要求预先有一个工作的 Ruby on Rails 开发环境。如果你还没有搭建这样一个环境,可以可以遵循以下教程: 在 Ubuntu 14.04 上使用 rbenv 安装 Ruby on Rails
你还需要有 superuser 权限,或sudo
账户,如此你才能安装 PostgreSQL 数据库软件。
如果你准备就绪,那么我们开始安装 PostgreSQL.
如果你还没有安装好的 PostgreSQL,那么照着下面来:
首先,更新 apt-get:
$ sudo apt-get update
然后安装 PostgreSQL 和它的开发库:
$ sudo apt-get install postgresql postgresql-contrib libpq-dev
PostgreSQL 安装好了,不过你还需要创建一个新的数据库账号来给你的 Rails 应用程序使用。
用以下命名创建一个 PostgreSQL superuser 账号 (把 pguser 替换为你自己的账号):
$ sudo -u postgres createuser -s pguser
如果你要为数据库账号设置一个密码,使用以下命令进入 PostgreSQL 控制台:
$ sudo -u postgres psql
PostgreSQL 控制台由一个postgres=#
提示符标识,输入以下命令给你创建的数据库账号设置密码:
postgres=# \password pguser
输入你想要的密码,然后确认。
现在使用以下命令退出 PostgreSQL 控制台:
postgres=# \q
接下来我们来创建 Rails 应用程序。
在你的 home 目录创建新的 Rails 应用。使用-d postgresql
选项 来设置 PostgreSQL 作为数据库,注意替换 appname 为你自己应用的名字:
$ cd ~
$ rails new appname -d postgresql
然后进入应用程序目录:
$ cd appname
下一步是配置应用的数据库联接。
你先前创建的 PostgreSQL 账号 将用来 创建你应用程序的测试和开发环境数据库。我们需要给你的应用程序配置适当的数据库设置。
打开你的应用程序的数据库配置文件:
$ vi config/database.yml
在default
段落,找到"pool: 5"这一行,然后在这行下面加上以下几行 (注意把 pguser 和 pguser_password 替换成你自己的 PostgreSQL 账号和密码):
config/database.yml excerpt
host: localhost username: pguser password: pguser_password
保存然后退出。
使用 rake 命令创建你的应用程序的 development
和test
数据库:
$ rake db:create
这将会在你的 PostgreSQL 服务器上创建两个数据库。例如,如果你的应用程序名字为"appname",那么创建的数据库就会叫做"appname_development" 和 "appname_test".
如果在这里返回一个 error,重读前面的章节 (配置服务器联接) 确保database.yml
下面的host
,username
和password
设置正确。确定数据库信息设置正确后,尝试重新创建应用程序数据库。
测试你的应用程序是否能使用 PostgreSQL 最简单的方式就是运行它。
比如,运行开发环境 (默认的),使用以下命令:
$ rails server
这将会在 localhost port 3000 下面运行你的 Rails 程序。
如果你的 Rails 程序在远程服务器,而你想通过 web 浏览器访问它,可以把程序绑定到你的服务器的一个公网 IP 地址。首先,查看服务器的公网 IP,然后使用rails server
命令 (把 server_public_IP 替换成你自己的服务器 IP):
$ rails server --binding=server_public_IP
现在你就可以通过浏览器里在服务器的公网 IP 地址下的 3000 端口访问你的 Rails 应用程序了:
Visit in a web browser:
http://server_public_IP:3000
如果你看到了"Welcome aboard" Ruby on Rails 页面,那么你的程序就配置成功并且连接到 PostgreSQL 数据库了。
现在你可以在 Ubuntu 14.04 下面用 PostgreSQL 作为数据库运行 Ruby on Rails 程序的开发环境了。
Good luck!