作为一名老研发,我希望 PostgreSQL 能加上这些功能
在数据库管理领域,PostgreSQL 以其稳健性和灵活性脱颖而出。然而,随着开发人员在现代应用程序开发的复杂性中航行,还有一些额外功能可以简化他们的工作流。以下是我希望 PostgreSQL 具备的功能,让研发工作更加轻松。
带版本记录的 Schema
PG Catalog 仅存储当前最新的 schema。Schema 变更工具通常需要创建外部表来存储 Schema 变更的历史记录。内置的带版本记录的 schema 能带来如下好处:
标准化格式。例如版本号格式,表示 schema 变更是否正在进行中的状态。 一致性。当 schema 变更历史存储在外部时,很难完全保证变更历史与实际 schema 之间的一致性。 回滚。如果新的 schema 变更引入了问题,版本控制允许安全地回滚到以前稳定状态,最大程度地减少停机时间和对用户的影响。 流程控制。有了带版本号的 schema 变更状态和历史记录,就更容易强制要求数据库上任何时候只能运行一个 schema 变更。
在线 Schema 变更
Schema 变更过程中创建的临时表是内部表。因此不会污染用户空间。 Postgres 只要把 schema 变更的进度百分比暴露出来。
分支
归档表
标签
查找特定应用程序拥有的所有数据库/表。 当更改与某个标签匹配的表时需要额外审查。
Git 集成
总结
Neon 重写了 Postgres 引擎,实现了 serverless 和即时分支。 Xata 提供 serverless、分支,以及在线 schema 变更。 Snaplet 用于生成合规的测试数据库。 Supabase 则是围绕 Postgres 构建了整个应用开发平台。 Bytebase 统一所有人与 Postgres 的操作,包括 schema 变更、临时数据订正、数据访问控制和动态脱敏。
你最希望有的 PostgreSQL 功能是什么?欢迎大家在评论区留言。