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

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

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

内容提要

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

🔎

延伸解读

数据库设计的重要性

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

数据填充的最佳实践

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

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

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

Q&A

如何在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了解本地数据库的当前状态。

🏷️

标签

➡️

继续阅读