我正在寻找一种自动化架构迁移的方式,适用于像MongoDB或CouchDB这样的数据库。
最好使用Python编写此工具,但其他任何语言也可以。
我正在寻找一种自动化架构迁移的方式,适用于像MongoDB或CouchDB这样的数据库。
最好使用Python编写此工具,但其他任何语言也可以。
由于Nosql数据库可以包含大量数据,因此无法按照常规的关系型数据库迁移数据。实际上,当数据达到一定大小阈值时,您也无法在关系型数据库中进行迁移。关闭网站一整天以添加现有表的字段是不切实际的。因此,在关系型数据库中,您最终会做出丑陋的修补,例如为该字段添加新表并进行连接以获取数据。
当然,如果你的数据"老化"并最终到期,这就可以为你进行模式迁移 - 只需为新添加的数据更改格式,然后等待所有以旧格式存储的数据到期 - 然后你可以淘汰向后兼容的代码。
当一个项目需要对NoSQL数据库进行模式迁移时,这让我想到你仍然在以关系型数据库的方式思考,但是使用的是NoSQL数据库。
如果有人要开始使用NoSQL数据库,你需要意识到大多数关系型数据库(如MySQL)的“规则”也需要被抛弃。例如严格的模式、规范化、使用多个对象之间的关系等。NoSQL存在的目的是解决不需要关系型数据库提供的所有额外“功能”的问题。
我建议您编写代码时不要期望或需要NoSQL数据库的硬模式 - 您应该支持旧模式,并在访问时动态转换文档记录,如果您确实希望在该记录上拥有更多的模式字段。
请记住,与使用关系型数据库时相比,NoSQL存储在思考和设计时表现最佳