TheOdinProject 教程:在 Rails 项目中安装配置 PostgreSQL

TheOdinProject 教程:在 Rails 项目中安装配置 PostgreSQL

curriculum TheOdinProject/curriculum: The Odin Project 是一个免费的在线编程学习平台,这个仓库是其课程大纲和教材资源库,涵盖了Web开发相关的多种技术栈,如HTML、CSS、JavaScript以及Ruby on Rails等。 curriculum 项目地址: https://gitcode.com/gh_mirrors/cu/curriculum

前言

在 Rails 开发中,数据库的选择对项目有着深远影响。虽然 Rails 默认使用 SQLite 作为开发数据库,但在生产环境中,PostgreSQL 通常是更专业的选择。本文将详细介绍如何在 Rails 项目中安装和配置 PostgreSQL 数据库。

为什么选择 PostgreSQL

生产环境考量

SQLite 虽然简单易用,但在生产环境中存在明显局限:

  1. 许多托管服务使用临时文件系统,可能导致数据库被意外删除
  2. 并发写入性能较差
  3. 缺乏完善的用户权限系统

开发与生产环境一致性

保持开发环境与生产环境一致可以避免"在我机器上能运行"的问题。使用 PostgreSQL 作为开发数据库能确保:

  • 数据迁移脚本在生产环境能正确执行
  • 查询优化策略在不同环境表现一致
  • 避免因数据库差异导致的意外行为

环境概念解析

开发环境类型

典型的应用开发会涉及四种环境:

  1. 开发环境:开发者本地机器,用于自由修改和测试代码
  2. 测试环境:专门用于自动化测试,可能有更详细的日志记录
  3. 预发布环境:模拟生产环境,用于最终验证
  4. 生产环境:实际面向用户的环境

环境变量的重要性

环境变量是操作系统提供的键值存储机制,在 Rails 开发中特别有用:

  • 保护敏感信息(如数据库密码、API密钥)不被提交到版本控制
  • 允许不同环境使用不同配置
  • Rails 会读取 RAILS_ENV 变量确定当前环境(默认为开发环境)

PostgreSQL 安装指南

Linux 系统安装

1. 系统更新
sudo apt update && sudo apt upgrade
2. 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib libpq-dev
3. 启动服务
sudo systemctl start postgresql.service
4. 创建角色
sudo -i -u postgres createuser --interactive

创建与当前 Linux 用户名相同的超级用户角色。

5. 创建角色数据库
sudo -i -u postgres createdb <用户名>
6. 设置密码
psql
\password <用户名>
GRANT ALL PRIVILEGES ON DATABASE <数据库名> TO <用户名>;
7. 保存密码到环境变量
echo 'export DATABASE_PASSWORD="<密码>"' >> ~/.bashrc

macOS 系统安装

推荐使用 Postgres.app 安装:

  1. 访问 Postgres.app 官网下载安装
  2. 配置 PATH 环境变量:
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

macOS 安装后默认使用信任认证,无需密码即可本地连接。

创建 PostgreSQL 支持的 Rails 应用

1. 安装 pg gem

gem install pg

2. 创建新应用

rails new <应用名> --database=postgresql

3. 配置数据库

编辑 config/database.yml

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: <角色名>
  password: <%= ENV['DATABASE_PASSWORD'] %>

4. 创建数据库

rails db:create

5. 启动服务器

rails s

访问 localhost:3000 验证安装是否成功。

常见问题排查

  1. 连接失败:检查用户名/密码是否正确,确保角色有数据库访问权限
  2. 数据库创建失败:确认 PostgreSQL 服务正在运行
  3. 认证错误:检查 pg_hba.conf 文件中的认证方法设置

最佳实践

  1. 为每个项目创建独立的 PostgreSQL 角色和数据库
  2. 使用不同的密码区分开发和生产环境
  3. 考虑使用 dotenv 等工具管理环境变量
  4. 定期备份开发数据库中的重要数据

通过本文的指导,您应该已经成功在 Rails 项目中配置了 PostgreSQL 数据库。这将为后续开发更复杂的应用打下坚实基础。

curriculum TheOdinProject/curriculum: The Odin Project 是一个免费的在线编程学习平台,这个仓库是其课程大纲和教材资源库,涵盖了Web开发相关的多种技术栈,如HTML、CSS、JavaScript以及Ruby on Rails等。 curriculum 项目地址: https://gitcode.com/gh_mirrors/cu/curriculum

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

滑思眉Philip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值