
Supabase凭借其强大的后端服务赢得了众多开发者的青睐,它集成了PostgreSQL数据库、身份验证、存储和实时功能,并提供开发者友好的使用体验。如果您熟悉Firebase,那么Supabase将会让您感觉如虎添翼,尤其是在您热衷于SQL和数据库优先开发时。然而,随着项目规模的扩大,挑战也随之而来。如果您曾经因为担心变更带来的风险而犹豫不决,或者难以追踪行级安全策略(RLS)和数据库功能,那么您并非孤身一人。好消息是,Supabase提供了应对这些挑战的工具和工作流程,其功能之强大超乎您的想象。
本文将探讨如何从Supabase仪表板的快速编辑过渡到采用基于Git的可扩展工作流进行正式开发。
仪表板的局限性
Supabase仪表板初次使用时非常直观易用,您可以快速创建表、定义RLS策略甚至编写函数。但是,随着项目规模的增长,这种方法可能会变得杂乱无章:
- 缺乏版本控制: 仪表板上的更改难以追踪,更不用说回滚了。
- 高风险更改: 直接修改生产数据或策略可能会导致难以调试的错误。
- 协作困难: 团队缺乏合适的工作流程,协作效率低下。
仪表板非常适合原型设计,但对于大型项目,您需要更强大的工具。
Supabase的本地开发工作流程
Supabase CLI和本地开发环境正是为此而生的。Supabase提供了一个工作流程,让您能够在本地管理数据库模式、策略和迁移,所有这些都通过Git进行版本控制。这弥合了快速原型设计和专业开发实践之间的差距。
Supabase CLI的功能:
基于Intranet/Internet 的Web下的办公自动化系统,采用了当今最先进的PHP技术,是综合大量用户的需求,经过充分的用户论证的基础上开发出来的,独特的即时信息、短信、电子邮件系统、完善的工作流、数据库安全备份等功能使得信息在企业内部传递效率极大提高,信息传递过程中耗费降到最低。办公人员得以从繁杂的日常办公事务处理中解放出来,参与更多的富于思考性和创造性的工作。系统力求突出体系结构简明
- 创建本地环境: 在您的计算机上运行Supabase的本地版本(PostgreSQL、身份验证等)。
- 生成迁移: 数据库架构的每个更改都可以作为迁移文件进行捕获。
- 安全测试: 在本地进行实验,而不会影响生产数据。
- 版本控制: 迁移、SQL函数甚至RLS策略都可以在Git中进行管理。
- 部署更改: 将迁移自信地部署到您的生产环境。
入门指南:
- 安装CLI: 按照Supabase的指南安装CLI。
- 设置本地项目: 使用Supabase CLI创建本地开发环境。
- 本地更改: 修改模式、添加RLS策略或创建函数。
-
生成迁移: 使用
supabase db diff生成迁移文件。 - Git版本控制: 像管理应用程序代码一样管理您的更改。
-
部署更改: 使用
supabase db push将迁移应用到生产环境。
Supabase工作流最佳实践
为了充分利用Supabase,请遵循以下最佳实践:
-
组织您的SQL: 保持数据库函数、触发器和RLS策略模块化和可重用。将它们存储在版本控制的
.sql文件中,并进行逻辑组织,例如,为迁移、函数和策略创建单独的文件夹。 - 版本控制数据库架构: 将您的数据库架构视为应用程序代码一样对待。对架构、策略和函数的所有更改都进行版本控制。这确保您的团队能够有效协作并回滚更改。
- 在部署前进行本地测试: 切勿在生产数据库上进行实验。使用本地环境测试模式更改、函数和策略。这最大限度地降低了破坏生产环境应用程序的风险。
-
使用工具追踪您的工作流程: 虽然Supabase CLI功能强大,但请考虑使用其他工具来保持井然有序:
- 项目管理工具 (例如Jira, Asana, Trello): 记录您的策略、功能和工作流程。
- 数据库管理工具 (例如Postico, DBeaver): 可视化管理数据库。
- CI/CD管道: 自动化迁移到生产环境的部署。
- 保持RLS策略简单: 行级安全性是Supabase最强大的功能之一,但过于复杂的策略可能难以调试。从简单开始,彻底测试,并逐步构建。
常见的陷阱(以及如何避免它们)
- 跳过本地测试: 在部署前始终在本地测试您的迁移和策略。很容易忽略此步骤,但它可以避免生产环境中的问题。
- 过于复杂的策略: 避免编写过于复杂的RLS策略。迭代构建策略,并确保清晰地记录它们。
- 仅依赖于仪表板: 仪表板非常适合快速原型设计,但对于大型项目,请尽早切换到基于Git的工作流程。
结论
Supabase 不仅仅是一个后端替代方案,它是一个强大的后端平台,配合正确的工作流可以轻松扩展。通过采用Supabase CLI、本地开发和基于Git的工作流程,您可以自信地构建和发展项目,而无需担心破坏生产环境。









