部署 在 Ubuntu 14.04 下使用 PostgreSQL 部署 Ruby on Rails

ff4415 · 2017年03月05日 · 最后由 ff4415 回复于 2017年03月09日 · 2467 次阅读

原文链接: 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

如果你还没有安装好的 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 应用程序。

创建新的 Rails 应用

在你的 home 目录创建新的 Rails 应用。使用-d postgresql 选项 来设置 PostgreSQL 作为数据库, 注意替换 appname 为你自己应用的名字:

$ cd ~
$ rails new appname -d postgresql

然后进入应用程序目录:

$ cd appname

下一步是配置应用的数据库联接。

配置数据库联接

你先前创建的 PostgreSQL 账号 将用来 创建你应用程序的测试和开发环境数据库。我们需要给你的应用程序配置适当的数据库设置。

打开你的应用程序的数据库配置文件:

$ vi config/database.yml

default段落,找到"pool: 5"这一行,然后在这行下面加上以下几行 (注意把 pguserpguser_password 替换成你自己的 PostgreSQL 账号和密码):

config/database.yml excerpt

host: localhost
username: pguser
password: pguser_password

保存然后退出。

创建应用程序数据库

使用 rake 命令创建你的应用程序的 developmenttest数据库:

$ rake db:create

这将会在你的 PostgreSQL 服务器上创建两个数据库。例如,如果你的应用程序名字为"appname",那么创建的数据库就会叫做"appname_development" 和 "appname_test".

如果在这里返回一个 error,重读前面的章节 (配置服务器联接) 确保database.yml下面的host,usernamepassword设置正确。确定数据库信息设置正确后,尝试重新创建应用程序数据库。

测试配置

测试你的应用程序是否能使用 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!

ff4415 在 Ubuntu 14.04 上使用 Puma 和 Nginx 部署 Rails App 中提及了此贴 03月05日 22:01

"sudo apt-get install psotgresql postgresql-contrib libpq-dev"

单词拼错, 应该 postgresql

httplife 回复

谢了。已经改正了。

三篇加在一起就可以搭起一个 rails 应用,然后在这个基础上面就可以用 mina 做自动化部署了。 这篇文章最有用的其实就是开头的那个原文链接。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册