介绍
Ruby on Rails 使用 sqlite3 作为其默认数据库,这在许多情况下非常有效,但对于您的应用程序可能并不足够. 如果您的应用程序需要扩展性,集中性和控制(或任何其他功能)的客户端 / 服务器 SQL 数据库,如 PostgreSQL 或 MySQL,你需要执行一些额外的步骤,以获得它并运行。
本教程将向您展示如何设置 Ruby on Rails 开发环境,允许您的应用程序在 CentOS 7 或 RHEL 服务器上使用 PostgreSQL 数据库。
前提条件
如果你还没有,你可以遵循这个链接中的教程: 如何在CentOS 7上安装Ruby on Rails with rbenv。
您还需要访问超级用户或sudo
帐户,以便您可以安装PostgreSQL数据库软件。
此指南还假定 SELinux 已禁用。
一旦你准备好了,让我们安装PostgreSQL。
安装 PostgreSQL
如果你还没有安装PostgreSQL,现在就去做吧。
如果您尚未这样做,请使用此命令将 EPEL 存储库添加到 yum:
1sudo yum install epel-release
安装 PostgreSQL 服务器及其开发库:
1sudo yum install postgresql-server postgresql-contrib postgresql-devel
PostgreSQL已安装,但我们仍然需要做一些基本的配置。
创建一个新的 PostgreSQL 数据库集群:
1sudo postgresql-setup initdb
默认情况下,PostgreSQL不允许密码身份验证,我们将通过编辑其基于主机的身份验证配置来更改。
使用您最喜欢的文本编辑器打开 HBA 配置,我们将使用 vi:
1sudo vi /var/lib/pgsql/data/pg_hba.conf
找到看起来像这样的行,在文件的底部:
1[label pg_hba.conf excerpt (original)]
2host all all 127.0.0.1/32 ident
3host all all ::1/128 ident
然后用md5
取代ident
以便它们看起来像这样:
1[label pg_hba.conf excerpt (updated)]
2host all all 127.0.0.1/32 md5
3host all all ::1/128 md5
保存和退出 PostgreSQL 现在已配置为允许密码身份验证。
现在开始并启用 PostgreSQL:
1sudo systemctl start postgresql
2sudo systemctl enable postgresql
PostgreSQL 已安装,但您应该创建一个新的数据库用户,您的 Rails 应用程序将使用它。
创建数据库用户
首先,更改到postgres
系统用户:
1sudo su - postgres
使用此命令创建一个 PostgreSQL 超级用户(用自己的用户名替换突出的单词):
1createuser -s pguser
要为数据库用户设置密码,请使用此命令输入 PostgreSQL 控制台:
1psql
在 PostgreSQL 提示中,输入此命令以为您创建的数据库用户设置密码:
1\password pguser
在提示中输入您想要的密码,并确认它。
现在您可以通过输入此命令退出 PostgreSQL 控制台:
1\q
现在,您的 PostgreSQL 用户已经设置了,您可以返回正常用户:
1exit
让我们现在创建一个 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 应用程序上开始开发,在 CentOS 7 上使用 PostgreSQL 作为数据库!
好运!