spring - 在扩展的 Spring 微服务中向后兼容的 postgresql 更新
问题描述
我有一个在 Kubernetes 中运行的 spring 微服务,它可以水平扩展到多个 pod。所有服务实例都指向一个 PostgreSQL 数据库。我正在尝试更新表中一列的名称。绕过它的最佳方法是什么?
我主要关心表更新的时间,但一些服务实例仍然有引用前一个列名的旧代码,事情会中断。这似乎是一个非常常见的用例,但我找不到任何具体的东西。
解决方案
我看到了执行此迁移的 2 个选项:
- 您可以添加一个新列(使用您的新名称),而不是更新现有列,然后部署使用新列的应用程序,然后更新表以删除旧列。如果您没有在查询中使用列位置或类似的东西,这应该可以正常工作。
- 如果您有毫秒级延迟要求并且数据库不是那么大,您可以创建现有数据库的副本,以便在更新原始数据库时为查询提供服务。最后,您部署使用旧数据库但使用新列名的应用程序。无论数据库类型如何,这都有效。
推荐阅读
- react-native - 在 react native 中加载 Script 标签
- flutter - Flutter 中的 Dart 推荐设置
- typescript - TypeScript 错误 TS2305:导入函数时没有导出成员
- r - 为ggplot创建注释函数所需的方法
- angular - 出现错误:包“single-spa-angular”没有定义构建器。从 Angular 6 迁移到 Angular 12 之后
- python - 无法抓取所有项目
- azure - 如何从数据块连接到 Azure SQL 并输入新数据?
- python - ValueError:运行 train.py 文件时,形状 (7, 7, 6, 64) 和 (64, 3, 7, 7) 不兼容
- python - 将多个计算列添加到数据框中的 Pythonic 方法?
- javascript - ReactJS - JSON.parse 错误:SyntaxError: Unexpected token ' in JSON at position 1