如何在 CentOS 7 上将 PostgreSQL 与 Ruby on Rails 应用程序结合使用

介绍

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_developmentappname_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 作为数据库!

好运!

Published At
Categories with 技术
comments powered by Disqus