Supabase | 我设计和管理数据库的方法

Supabase | 我设计和管理数据库的方法

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

在dbdiagram.io设计数据库后,将导出的.sql文件移至Supabase的迁移文件夹并应用迁移。使用Snaplet Seed工具填充数据,确保配置正确。最后,重置远程数据库以同步本地结构,并可选择填充远程数据库数据。

🎯

关键要点

  • 在dbdiagram.io设计数据库后,导出.sql文件并移动到Supabase的迁移文件夹。

  • 如果数据库拓扑涉及非'public'模式的表,需检查.sql文件中的代码。

  • 使用命令'supabase db reset --no-seed'应用迁移到本地Supabase数据库。

  • 使用Snaplet Seed工具填充数据,确保配置正确。

  • 在seed.config.ts中配置本地数据库链接。

  • 在seed.ts中创建用户并填充相关数据,确保DRY_RUN设置为false。

  • 使用'npx @snaplet/seed sync'让Snaplet Seed了解本地数据库的当前状态。

  • 重置远程数据库以同步本地结构,使用命令'supabase db reset --linked --no-seed'。

  • 可选择将数据填充到远程数据库,确保seed.config.ts中使用生产数据库链接。

🔎

延伸解读

数据库设计的重要性

在使用dbdiagram.io设计数据库时,确保数据库结构的合理性至关重要。设计不当可能导致后续迁移和数据填充时出现错误,特别是涉及非'public'模式的表时,需仔细检查导出的.sql文件。

数据填充的最佳实践

使用Snaplet Seed工具进行数据填充时,确保在seed.config.ts中正确配置本地和生产数据库链接。设置DRY_RUN为false可以直接将数据填充到数据库中,避免了调试时的繁琐步骤。

远程数据库同步的注意事项

在重置远程数据库以同步本地结构时,务必确认本地数据库的结构已稳定。使用命令'supabase db reset --linked --no-seed'可以确保远程数据库与本地数据库一致,避免数据丢失或结构不匹配的风险。

延伸问答

如何在Supabase中应用数据库迁移?

将导出的.sql文件移动到Supabase的迁移文件夹,然后使用命令'supabase db reset --no-seed'应用迁移。

使用Snaplet Seed工具填充数据的步骤是什么?

在seed.config.ts中配置本地数据库链接,创建用户并填充数据,确保DRY_RUN设置为false,然后运行'npx @snaplet/seed sync'。

如何检查.sql文件中的非'public'模式表?

如果数据库拓扑涉及非'public'模式的表,需检查.sql文件中的代码,确保没有多余的CREATE TABLE语句。

如何重置远程数据库以同步本地结构?

使用命令'supabase db reset --linked --no-seed'来重置远程数据库以同步本地结构。

在seed.ts中如何创建用户并填充数据?

在seed.ts中使用createSeedClient创建用户,设置相关数据并调用seed.auth_users方法填充数据。

如何确保Snaplet Seed了解本地数据库的当前状态?

运行命令'npx @snaplet/seed sync'来让Snaplet Seed了解本地数据库的当前状态。

🏷️

标签

➡️

继续阅读