在 Supabase 上开始使用 Ruby on Rails 和 Postgres

2025-06-10

在 Supabase 上开始使用 Ruby on Rails 和 Postgres

每个 Supabase 项目都配备一个完整的Postgres数据库,这是一个免费的开源数据库,被认为是世界上最稳定和最先进的数据库之一。

Postgres 是您的 Ruby on Rails 应用程序的理想选择,因为 Rails 附带内置的 Postgres 适配器!

在这篇文章中,我们将从头开始,创建一个新的 Rails 项目,将其连接到我们的 Supabase Postgres 数据库,并使用 Rails 控制台与数据库交互。

Supabase 是Heroku Postgres 的最佳免费替代品之一。请参阅本指南,了解如何从 Heroku 迁移到 Supabase。

还有一个Heroku 到 Supabase 迁移工具,只需单击几下即可完成迁移。

如果您更喜欢视频指南,可以按照下面的步骤操作。记得订阅Supabase 的 YouTube 频道

supabase rails 的 Youtube 链接

创建 Rails 项目

确保您的 Ruby 和 Rails 版本是最新的,然后用它rails new来搭建一个新的 Rails 项目。使用-d=postgresql标志位为 Postgres 进行设置。

请参阅Rails 文档以了解更多详细信息。



rails new blog -d=postgresql


Enter fullscreen mode Exit fullscreen mode

设置 Postgres 连接详细信息

前往database.new并创建一个新的 Supabase 项目。请妥善保存您的数据库密码。

当您的项目启动并运行时,导航到数据库设置以查找 URI 连接字符串。

Rails 自带 Postgres 适配器,您可以通过环境变量轻松配置它。您可以在Supabase 仪表盘中找到数据库 URL 。



export DATABASE_URL=postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:5432/postgres


Enter fullscreen mode Exit fullscreen mode

创建并运行数据库迁移

Rails 包括 Active Record 作为 ORM 以及为您生成 SQL 迁移文件的数据库迁移工具。

创建示例Article模型并生成迁移文件。



bin/rails generate scaffold Article title:string body:text
bin/rails db:migrate


Enter fullscreen mode Exit fullscreen mode

使用模型与数据库交互

您可以使用内置的 Rails 控制台与数据库交互。例如,您可以创建新条目或列出模型表中的所有条目。



bin/rails console


Enter fullscreen mode Exit fullscreen mode


article = Article.new(title: "Hello Rails", body: "I am on Rails!")
article.save # Saves the entry to the database

Article.all


Enter fullscreen mode Exit fullscreen mode

启动应用程序



bin/rails server


Enter fullscreen mode Exit fullscreen mode

运行开发服务器。在浏览器中访问http://127.0.0.1:3000即可查看应用程序的运行情况。

更新应用程序以显示文章

目前,该应用程序显示了一个漂亮的开发启动画面,让我们更新它以显示来自数据库的文章:



Rails.application.routes.draw do
  # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html

  # Defines the root path route ("/")
  root "articles#index"
end


Enter fullscreen mode Exit fullscreen mode

部署到 Fly.io

要开始使用 Fly.io,您需要flyctl安装我们的 CLI 应用。如果您已经安装,请继续。如果没有,请跳至安装指南。安装完成后,您需要登录 Fly

使用 Fly.io 提供 Rails

要配置和启动应用程序,您可以使用fly launch并遵循向导。

当询问“您是否要在继续之前调整这些设置?”时,选择y并设置 Postgres,none因为我们将提供 Supabase 数据库 URL 作为秘密。

将连接字符串设置为机密

使用 Fly.io CLI 将上面的 Supabase 数据库连接 URI 设置为 sevret,并将其作为环境变量公开给 Rails 应用程序。



fly secrets set DATABASE_URL=$DATABASE_URL


Enter fullscreen mode Exit fullscreen mode

部署应用

使用以下命令部署您的应用程序:



fly deploy


Enter fullscreen mode Exit fullscreen mode

这将需要几秒钟,因为它会上传您的应用程序、构建机器镜像、部署镜像,然后进行监控以确保其成功启动。完成后,使用以下命令访问您的应用程序:



fly apps open


Enter fullscreen mode Exit fullscreen mode

就这样!你的 Rails 应用已经通过 Supabase Postgres 和 Fly.io 启动并运行了!

结论

Supabase 是为您的 Ruby on Rails 应用程序提供 Postgres 数据库支持的理想平台!每个 Supabase 项目都附带完整的 Postgres 数据库和大量实用的扩展

现在就来database.new上尝试一下吧!

更多在 Supabase 上

🚀 了解有关 Supabase 的更多信息

链接:https://dev.to/supabase/getting-started-with-ruby-on-rails-and-postgres-on-supabase-1a03
PREV
pgvector 0.6.0:并行索引构建速度提高 30 倍
NEXT
使用 Next.js 和 Supabase 创建 Slack 克隆