在所有可用的数据库引擎中,PostgreSQL 是最受欢迎的数据库引擎之一。它是一个著名的开源数据库系统,以其可靠性、强大的功能和出色的性能而闻名。由于 PostgreSQL 是一个热门选择,几乎所有主流的 Web 框架都支持它。与其竞争对手 MySQL 和 SQLite 类似,PostgreSQL 也有其优缺点.
Ruby on Rails 是一个流行的 Web 框架,使用 Ruby 编写。它是一个与数据库无关的框架,这意味着它可以与各种数据库协同工作。默认情况下,Rails 假定使用 SQL 来实现数据库功能。不过,它也支持 PostgreSQL 集成。
本教程将引导您完成为 Ruby on Rails 应用程序配置 PostgreSQL 的过程.
Ruby on Rails 和 PostgreSQL
PostgreSQL 和 Ruby on Rails 在任何 UNIX/Linux 发行版上都可用。它们应该可以从默认的软件包服务器中获取。
另一种方法是使用 RVM (Ruby Version Manager)。它是一个用于管理 Ruby on Rails 安装的专用工具。这种方法的好处是 RVM 将创建 Ruby on Rails 的本地安装。它还可以管理多个版本的 Ruby 并在它们之间无缝切换。以下是详细介绍 在 Ubuntu 上使用 RVM 安装 Ruby on Rails.
至于 PostgreSQL,请参阅这篇关于 在 Ubuntu 上安装和配置 PostgreSQL.
-
安装 RVM
得益于 RVM 提供的安装脚本,RVM 的安装过程非常简单。该脚本旨在自动检测 Linux 系统,然后下载并安装所有必需的软件包。我们需要 RVM GPG 密钥来验证软件包。它能确保接收到的软件包没有被欺骗。首先,添加 RVM GPG 密钥:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

然后,运行 RVM 安装脚本:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

最后,验证安装:
|
1 |
type rvm | head -n 1 |
-
安装 Rails
我们现在可以使用 RVM 安装其他组件。使用 RVM 安装 Rails 框架:
|
1 |
gem install rails |
-
安装 PostgreSQL
下一步需要系统上预装有 PostgreSQL。默认情况下,安装 PostgreSQL 最简单的方法是使用默认的包管理器。它适用于所有主流的 Linux 发行版。请查看 PostgreSQL 下载页面 以获取所有可用的安装方法。在 Ubuntu 上,以下命令将配置 PostgreSQL 仓库并立即进行安装:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

要启用 PostgreSQL 支持,我们需要安装 pg gem。它允许从 Ruby 代码与 PostgreSQL 进行交互:
|
1 |
gem install pg |
-
配置 PostgreSQL
安装完成后,我们将配置项目所需的工具。首先,切换到 PostgreSQL 用户:
|
1 |
su - postgres |
访问 PostgreSQL shell:
|
1 |
psql |

在 PostgreSQL 的上下文中,我们现在将创建一个新的 角色 (传统上称为用户)。PostgreSQL 有其自身的 角色和权限 格式。别忘了使用合适的用户名和强密码:
|
1 |
create role <username> with createdb login password 'password123'; |
创建 Rails 应用
指示 Rails 创建一个配置为使用 PostgreSQL 作为数据库的新 Rails 应用:
|
1 |
rails new <app_name> --database=postgresql |

这将创建一个带有应用用户名的新目录。Rails 通常期望数据库的用户名和应用名称相同。下一步是配置 Rails 数据库配置。配置文件位于以下位置:
|
1 |
RAILS_ROOT/config/database.yml |
文件 database.yml 包含描述当前 Rails 环境的合适数据库的数据。顾名思义,它使用 YAML。YAML 是一种适用于所有编程语言的人类友好型数据序列化标准。
默认情况下,Rails 期望为不同的环境使用不同的数据库,例如, development, test,以及 production。这在各种情况下都很有用,例如,每次运行 Rails 测试时,Rails 都会清空并重建 test 数据库。
这是一个示例 database.yml,其中包含 development 和 test 数据库:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

现在是使更改生效的时候了。以下命令将准备 中描述的必要数据库database.yml。每个数据库都将拥有自己的用户并具有 schema_migrations 表。该表对于数据和模式迁移是必需的:
|
1 |
rake db:setup |
如果 PostgreSQL 配置文件 pg_hba.conf 包含不正确的配置,此步骤将失败。该文件位于以下位置:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
以下行是目标。身份验证方法不应为 peer,而应为 md5:
|
1 |
local all all peer |
修改该行:
|
1 |
local all all md5 |

要使更改生效,您必须重启 PostgreSQL 服务:
|
1 |
sudo systemctl restart postgresql |
然后,重新运行数据库设置:
|
1 |
rake db:setup |
运行 Rails
运行 Rails 服务器需要以下附加组件。请注意,为此您需要安装 Node.js(带有 yarn):
|
1 |
rails webpacker:install |

Rails 应用现在应该已经准备好启动。启动 Rails 服务器:
|
1 |
rails server |

可以通过以下 URL 访问该服务器。它将跳转到 Rails 欢迎页面:
|
1 |
http://localhost:3000 |
为了让欢迎页面更有趣,创建一个脚手架:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
最后,启动服务器并再次导航到该 URL。我们现在可以管理文章(创建、编辑和删除文章)。
结语
这是 Ruby on Rails 与 PostgreSQL 的基本设置。有一个官方入门指南 可以帮助您进一步使用 Rails。我们创建的示例应用使用的是 PostgreSQL。这样,您就可以创建任何使用 PostgreSQL 实现其功能的应用。
祝您编程愉快!


评论
暂无评论。发表第一条评论吧。