从Couchbase 5.x升级到Couchbase 7.x时,如何处理模式/数据迁移?
我所说的模式是指必须在插入任何文档之前创建的索引,因此必须
创建新的收藏,
定义索引,
将文档从旧集合中移除参考文档以外。
对于SQL,有一些数据库迁移工具,如Flyway/Liquibase
我对Couchbase不是很在行。在环境中,在更新数据库/数据时,是否有任何其他的通用做法?管道DEV->UAT->PREPROD->PROD?
发布于 2022-10-05 21:16:18
有一个叫做CouchVersion的工具。
CouchVersion是一个Java框架,它帮助您管理Couchbase中的更改并将它们与应用程序同步。这个概念非常类似于其他db迁移工具,如Liquibase或Flyway,但不使用XML/JSON/YML文件。
发布于 2022-10-14 07:57:10
你不需要使用任何第三方的工具!Couchbase提供所有的东西。
首先是一些背景知识,couchbase被设计成在一个由至少两个节点组成的集群中工作,理想情况下,在生产中您至少应该使用3个节点。既然如此,如果您想升级couchbase,可以在集群上执行live!您只需从集群中删除一个节点,升级该节点,然后将其重新连接到集群中,就这样!当您逐节点删除和升级群集时,群集将继续工作。什么都没有失去,没有停机,你的客户甚至不会感觉到它。
其次,您只能将couchbase集群节点从一个主要版本升级到下一个(+1)主要版本,因此在您的示例中,必须将所有节点从主要版本5.x升级到6.x,然后当集群中的所有节点都有6.x版本时,将所有节点从6.x升级到7.x。
注意,couchbase集群可以在同一个集群中运行不同的节点版本(称为混合模式),只有当所有节点都升级到最新版本时,所有版本功能才可用。
我亲自将couchbase测试和生产的版本从6.0.3升级到6.5,从6.5升级到6.6,从6.6升级到7.1
发布于 2022-10-25 13:05:12
还有数据迁移工具https://github.com/tchlyah/couchmove。
但具体来说,我们当前的顶级选项是使用自己的CI/CD团队提供的解决方案(类似地定义要执行的SQL++语句)
https://stackoverflow.com/questions/73965922
复制相似问题