在 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 频道!
创建 Rails 项目
确保您的 Ruby 和 Rails 版本是最新的,然后用它rails new
来搭建一个新的 Rails 项目。使用-d=postgresql
标志位为 Postgres 进行设置。
请参阅Rails 文档以了解更多详细信息。
rails new blog -d=postgresql
设置 Postgres 连接详细信息
前往database.new并创建一个新的 Supabase 项目。请妥善保存您的数据库密码。
当您的项目启动并运行时,导航到数据库设置以查找 URI 连接字符串。
Rails 自带 Postgres 适配器,您可以通过环境变量轻松配置它。您可以在Supabase 仪表盘中找到数据库 URL 。
export DATABASE_URL=postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:5432/postgres
创建并运行数据库迁移
Rails 包括 Active Record 作为 ORM 以及为您生成 SQL 迁移文件的数据库迁移工具。
创建示例Article
模型并生成迁移文件。
bin/rails generate scaffold Article title:string body:text
bin/rails db:migrate
使用模型与数据库交互
您可以使用内置的 Rails 控制台与数据库交互。例如,您可以创建新条目或列出模型表中的所有条目。
bin/rails console
article = Article.new(title: "Hello Rails", body: "I am on Rails!")
article.save # Saves the entry to the database
Article.all
启动应用程序
bin/rails server
运行开发服务器。在浏览器中访问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
部署到 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
部署应用
使用以下命令部署您的应用程序:
fly deploy
这将需要几秒钟,因为它会上传您的应用程序、构建机器镜像、部署镜像,然后进行监控以确保其成功启动。完成后,使用以下命令访问您的应用程序:
fly apps open
就这样!你的 Rails 应用已经通过 Supabase Postgres 和 Fly.io 启动并运行了!
结论
Supabase 是为您的 Ruby on Rails 应用程序提供 Postgres 数据库支持的理想平台!每个 Supabase 项目都附带完整的 Postgres 数据库和大量实用的扩展!
现在就来database.new上尝试一下吧!