介绍
Ruby on Rails 使用 sqlite3 作为其默认数据库,这在许多情况下非常有效,但对于您的应用程序可能不够。如果您的应用程序需要由客户端/服务器 SQL 数据库(如 PostgreSQL 或 MySQL)提供的可扩展性、集中化和控制(或任何其他功能),则需要执行一些额外的步骤来启动并运行它。
本教程将向您展示如何设置 Ruby on Rails 开发环境,允许您的应用程序在 Ubuntu 14.04 服务器上使用 PostgreSQL 数据库. 首先,我们将介绍如何安装和配置 PostgreSQL。
前提条件
如果你还没有,你可以遵循这个链接中的教程: 如何在Ubuntu 14.04上安装Ruby on Rails with rbenv。
您还需要访问超级用户或sudo
帐户,以便您可以安装PostgreSQL数据库软件。
一旦你准备好了,让我们安装PostgreSQL。
安装 PostgreSQL
如果你还没有安装PostgreSQL,现在就去做吧。
首先,更新 apt-get:
1sudo apt-get update
然后安装 PostgreSQL 及其开发库:
1sudo apt-get install postgresql postgresql-contrib libpq-dev
PostgreSQL 已安装,但您应该创建一个新的数据库用户,您的 Rails 应用程序将使用它。
创建数据库用户
使用此命令创建一个 PostgreSQL 超级用户(用自己的用户名替换突出的单词):
1sudo -u postgres createuser -s pguser
如果要为数据库用户设置密码,请使用此命令输入 PostgreSQL 控制台:
1sudo -u postgres psql
在 PostgreSQL 提示中,输入此命令以为您创建的数据库用户设置密码:
1\password pguser
在提示中输入您想要的密码,并确认它。
现在您可以通过输入此命令退出 PostgreSQL 控制台:
1\q
让我们现在创建一个 Rails 应用程序。
创建新的铁路应用程序
在您的主目录中创建一个新的 Rails 应用程序. 使用 -d postgresql
选项将 PostgreSQL 设置为数据库,并确保用您的应用程序名称替换突出的单词:
1cd ~
2rails new appname -d postgresql
然后进入应用程序目录:
1cd appname
下一步是配置应用程序的数据库连接。
配置数据库连接
您创建的 PostgreSQL 用户将用于创建您的应用程序的测试和开发数据库,我们需要为您的应用程序配置适当的数据库设置。
在您最喜欢的文本编辑器中打开应用程序的数据库配置文件. 我们将使用 vi:
1vi config/database.yml
在默认
部分中,找到说池: 5
的行,并在其下方添加以下行,它应该看起来像这样(用您的PostgreSQL用户和密码替换突出的部分):
1[label config/database.yml excerpt]
2 host: localhost
3 username: pguser
4 password: pguser_password
保存和退出。
创建应用数据库
创建你的应用程序的开发
和测试
数据库,使用这个rake命令:
1rake db:create
例如,如果你的应用程序的名称是appname
,它将创建名为appname_development
和appname_test
的数据库。
如果此时出现错误,请重新参阅以前的子部分(配置数据库连接),以确保database.yml
中的主机
、用户名
和密码
是正确的。
测试配置
测试您的应用程序是否能够使用 PostgreSQL 数据库的最简单的方法是尝试运行它。
例如,要运行开发环境(默认),请使用此命令:
1rails server
这将启动您的 Rails 应用程序在您的 localhost 上端口 3000。
如果您的 Rails 应用程序位于远程服务器上,并且您希望通过 Web 浏览器访问它,一个简单的方法是将其绑定到您的服务器的公共 IP 地址。
1rails server --binding=server_public_IP
现在,您应该能够通过服务器在端口 3000 上的公共 IP 地址访问您的 Rails 应用程序:
1[label Visit in a web browser:]
2http://server_public_IP:3000
如果您看到 Ruby on Rails 页面,您的应用程序已正确配置,并连接到 PostgreSQL 数据库。
结论
您现在已经准备好开始开发您的 Ruby on Rails 应用程序,在 Ubuntu 14.04 上使用 PostgreSQL 作为数据库!
好运!