Midday项目Supabase数据库架构解析与自托管指南

Midday项目Supabase数据库架构解析与自托管指南

【免费下载链接】midday 【免费下载链接】midday 项目地址: https://gitcode.com/GitHub_Trending/mi/midday

背景介绍

Midday是一款开源的数据分析与可视化工具,它使用Supabase作为后端数据库服务。在自托管Midday仪表板时,开发者遇到了数据库架构相关的问题,特别是用户ID与团队ID关系缺失导致的错误。本文将深入解析Midday项目的Supabase数据库架构,并提供自托管解决方案。

数据库架构挑战

Midday项目采用了Supabase的高级功能,这给数据库架构的导出和共享带来了两个主要技术挑战:

  1. 副本(Replicas)使用:Supabase的副本功能允许创建数据库的只读副本,用于提高读取性能,但这使得标准架构导出工具无法完整捕获所有数据库对象。

  2. 行级加密(Row-Level Encryption):项目使用了Vault存储加密密钥,这些密钥对每个项目都是唯一的,导致直接导出架构会缺失关键的加密配置信息。

解决方案演进

Midday团队与Supabase官方合作,最终找到了解决方案。现在项目仓库中已经包含了完整的数据库迁移文件,位于packages/supabase/migrations目录下。这些迁移文件包含了创建所有必要表、视图、函数和关系的SQL脚本。

关键数据库组件

Midday的Supabase数据库架构包含几个核心组件:

  1. 用户认证系统:处理用户注册、登录和会话管理
  2. 团队关系模型:建立用户与团队之间的多对多关系
  3. 交易视图:提供加密数据的安全访问接口
  4. Plaid集成:处理与金融数据API的连接

特别值得注意的是,项目中使用了decrypted_name等视图列,这些是通过Supabase的行级安全策略和加密函数实现的,确保敏感数据的安全访问。

自托管实施指南

对于想要自托管Midday的开发者,以下是关键步骤:

  1. 初始化Supabase项目:创建一个新的Supabase实例
  2. 应用迁移脚本:按顺序执行提供的迁移文件
  3. 配置行级安全:设置适当的表级和行级访问策略
  4. 集成Vault服务:配置加密密钥管理
  5. 验证关系完整性:特别是用户-团队关系的正确性

未来展望

Midday团队计划在产品发布后两周内提供完整的文档,包括详细的Supabase配置指南。这将使开发者能够更轻松地部署和管理自托管实例。

对于遇到特定问题的开发者,建议关注交易视图的实现细节,这是架构中最复杂的部分之一。正确的视图定义对于确保加密数据的安全访问至关重要。

通过理解Midday的数据库架构设计,开发者不仅能够成功自托管项目,还能根据需要对架构进行定制和扩展,满足特定的业务需求。

【免费下载链接】midday 【免费下载链接】midday 项目地址: https://gitcode.com/GitHub_Trending/mi/midday

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

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

抵扣说明:

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

余额充值