在扩展的spring微服务中进行向后兼容的postgresql更新



我有一个在Kubernetes中运行的spring微服务,它可以水平扩展到多个pod。所有的服务实例都指向一个PostgreSQL数据库。我正在尝试更新表中一列的名称。绕过它的最佳方法是什么?

我主要关心的是表更新的时间,但一些服务实例仍然有引用前一个列名的旧代码,事情会中断。这似乎是一个非常常见的用例,但我找不到任何具体的东西。

我看到了进行此迁移的两个选项:

  • 您可以添加一个新列(使用新名称(,然后部署使用新列的应用程序,然后更新表以删除旧列,而不是更新现有列。如果您在查询中没有使用列位置或类似的东西,这应该可以正常工作
  • 如果您有毫秒级的延迟要求,并且数据库不是那么大,那么您可以创建一个现有数据库的副本,在更新原始数据库时为查询提供服务。然后最后部署使用旧数据库但具有新列名的应用程序。这与数据库类型无关

最新更新