Ale*_*lex 10 postgresql schema-migration
1.我们有一个 Google 的 Protocol Buffers 格式的模式定义,我们用它来为不同的 gRPC 实现(Python、PHP)生成代码
2.我们有一个数据库 (PostreSQL),它从映射 Protocol Buffers 结构的 SQL 文件初始化。
问题: protobuf 规范经常发生变化。这必须反映在数据库中,这是一项繁琐的任务,手动完成时容易出错。
我们最近转移到 Alembic 迁移,以便在我们更新协议缓冲区规范时将持续更新迁移到(实时)数据库结构。但是,我们仍然觉得我们需要维护两个基本相同或至少非常相似的结构:ProtoBuf 和 SQL-Code(通过 Alembic Migrations 或在纯 *.sql 文件中管理)。
我一遍又一遍地搜索,关于其他人如何解决这个问题的信息很少。理想情况下,我们希望建立一个 CI/CD 流程,将 protobuf 规范(例如,消息名称从 更改teaspoon
为knife
)转换为 SQL 模式定义(例如CREATE TABLE teaspoon (...);
)或从中创建 SQL 迁移代码(例如ALTER TABLE teaspoon RENAME TO knife;
)。
我知道它实际上比我的简单示例更复杂,但我什至找不到支持半自动和人工监督转换的代码。有什么建议吗?
到目前为止我发现了什么:
也许可能有“Protobuf 迁移”之类的东西,可以在其中为每个 protobuf 规范更改定义 SQL 迁移?
小智 1
这个问题可能还有另一种方法。Ruby on Rails (RoR) 人员通过创建迁移并定义差异来解决这个问题,以确保 SQL 模式可以正确迁移而不会导致数据损坏问题。我怀疑数据库模式比相应的原型缓冲区有更多的约束。
也许扩展 RoR 迁移机制来生成适当的原型缓冲区将是一个更干净的自动化过程。
归档时间: |
|
查看次数: |
1862 次 |
最近记录: |