天天看点

【DB吐槽大会】第53期 - PG 函数和存储过程没有版本管理

背景

1、产品的问题点

  • PG 函数和存储过程没有版本管理

2、问题点背后涉及的技术原理

  • create or replace function|procedure会直接覆盖原来的函数或存储过程.

3、这个问题将影响哪些行业以及业务场景

  • 通用

4、会导致什么问题?

  • 在执行create or replace function|procedure 后如果想回退, 必须有以前的函数或存储过程定义, 否则就只能从逻辑备份中或者PITR模式恢复了.

5、业务上应该如何避免这个坑

  • 先备份原有的存储过程或函数定义, 再覆盖.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 管理复杂度增加, 而且依赖人, 还是容易出问题.

7、数据库未来产品迭代如何修复这个坑

  • function和procedure的逻辑无异于业务的代码逻辑, 所以希望内核增加function和procedure的版本管理能力, 可以查询到历史版本内容, 方便回退版本.