GitOps 和数据库迁移



我正在尝试在我们公司引入 GitOps。大多数情况下,我们有用Django编写的微服务(但是,它可以是任何其他Web框架(。我在数据库迁移方面存在概念问题。向前迁移很容易:您可以将它们作为作业、初始化容器或 helm 中的钩子运行。但是,向后迁移呢?假设我想从 v1.1 回滚到 v1.0,并且有一些迁移要取消应用。现在呢?我想使用argo cd或flux。

有一篇非常好的文章:https://www.weave.works/blog/how-to-correctly-handle-db-schemas-during-kubernetes-rollouts。但是,它需要一些你在Django中没有的纪律。

您可以应用的一种策略是,任何数据库迁移都应该向后兼容(尤其是 DDL(,以便在回滚到旧版本时,数据库状态仍与旧版本兼容。这应该成为设计/架构指南。

前任:

  1. 切勿在迁移过程中删除表
  2. 从不删除列
  3. 从不更改列的类型等

相关内容

  • 没有找到相关文章

最新更新