其他
作为一名老研发,我希望 PostgreSQL 能加上这些功能
我们已经与 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 核心维护者 Simon Riggs 因坠机去世,好友怀念往年轶事