在数据库的整个生命周期内维护和更新数据

时间:2017-11-23 06:16:46

标签: sql node.js postgresql

在使用迁移开发后端应用程序时,我非常熟悉维护数据库架构。例如,添加新列意味着创建一个新的迁移文件,该文件最终将在推送到生产时应用。

但是,在涉及一次性数据更新方面,我有点不清楚。特定客户可能希望对其数据集进行微小更改。是否有保留和记录这些特定变化的惯例?

1 个答案:

答案 0 :(得分:0)

你的问题并不完全适合SO规则,因为它并没有真正的事实答案;它相当广泛,以意见为基础,所以我们可能会选择几张票。

就个人而言,我会管理这样的事情:

  • 系统具有直接运行SQL,锁定
  • 的功能
  • 支持团队编写SQL来开展工作,给客户
  • 客户应用修复/运行SQL
  • 任何审核,日志记录,备份都是应用更新的系统的任务。对迁移采用类似的策略可能是明智的(一个表记录了什么,何时以及为什么,因此不会重复更新)

作为一种设施,如果它是暴露的并且是免费的,那么可能是非常危险的,但是有很多方法可以解决这个问题 - 也许你会为每个客户制作一个pub / priv密钥对,并加密sql在您将其提供给客户之前,系统将只运行成功解密的sql,因此虽然您的支持团队是priv键的唯一持有者,但只有他们可以编写可运行的sqls。

我认为在迁移式工作流程中加上源代码控制是明智或可行的,因为我无法想到保留客户特定内容的真正好方法以一种不会随着时间的推移成为管理噩梦的方式与核心代码库分离