当前位置:  开发笔记 > 编程语言 > 正文

是否有任何用于NoSQL数据库的模式迁移的工具?

如何解决《是否有任何用于NoSQL数据库的模式迁移的工具?》经验,为你挑选了1个好方法。

我正在寻找一种方法来自动化MongoDB或CouchDB等数据库的模式迁移.

最好,这个仪器应该用python编写,但任何其他语言都可以.



1> Vitaly Kushn..:

由于nosql数据库可能包含大量数据,因此无法在常规rdbms中将其迁移.实际上你不能为rdbms以及你的数据通过一些大小阈值.将您的网站暂停一天以将字段添加到现有表是不切实际的,因此对于rdbms,您最终会做一些难看的补丁,例如为字段添加新表并进行连接以获取数据.在nosql世界中,你可以做几件事.

正如其他人所建议的那样,您可以编写代码,以便它可以处理可能模式的不同"版本".这看起来通常比较简单.许多类型的架构更改对于编码来说都是微不足道的.例如,如果要向架构添加新字段,只需将其添加到所有新记录中,并且它将在所有旧记录中为空(您不会得到"字段不存在"错误或任何内容;).如果您需要旧记录中字段的"默认"值,则在代码中过于简单.

另一个选项,实际上唯一合理的选项,包括字段重命名和结构更改等非平凡的模式更改,是将schema_version存储在EACH记录中,并使用代码将数据从任何版本迁移到READ上的下一个版本.即,如果您当前的架构版本为10并且您从数据库中读取了版本为7的记录,则您的数据库层应调用migrate_8,migrate_9和migrate_10.这样,访问的数据将逐渐迁移到新版本.如果没有访问,那么谁在乎它是哪个版本;)

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有