node-mongo-native迁移框架

yot*_*ham 8 mongodb node.js

我正在使用node.js服务器,并将MongoDB与node-mongo-native一起使用.我正在寻找类似于Rails迁移的数据库迁移框架.有什么建议?

Ste*_*nie 8

我不知道用于执行MongoDB迁移的特定本机Node.js工具..但您可以选择使用其他语言编写的工具(例如,Mongoid Rails迁移).

值得注意的是,MongoDB中的Schema设计和数据建模方法与关系数据库不同.特别是,不要求集合具有一致或预先声明的模式,因此不需要许多传统的迁移操作,例如添加和删除列.

但是,涉及数据转换的迁移仍然有用.

如果您的应用程序期望数据采用某种格式(例如,您希望将"名称"字段拆分为"名字"和"姓氏"),那么如果使用迁移工具的想法,您可以使用多种策略在另一种编程语言中没有吸引力:

  • 处理应用程序逻辑中的数据差异,因此旧的和新的数据格式都是可接受的(可能"升级"记录以匹配更新的格式)
  • 编写一个脚本来进行一次性的数据迁移
  • 节点迁移贡献MongoDB帮助程序


Aus*_*oyd 6

我刚刚编写了一个基于node-mongo-native的基本迁移框架:https://github.com/afloyd/mongo-migrate.它允许您上下移动,以及向上/向下迁移到特定的版本号.它最初基于节点迁移,但显然需要稍微更改以使其工作.

修订历史记录存储在mongodb中,而不是存储在文件系统上,如node-migrate,允许使用单个数据库在同一项目上进行协作.否则,每个运行迁移的开发人员都可能导致迁移对数据库多次运行.

迁移本身是基于文件的,也有助于在单个项目上进行协作,其中每个开发人员(或不是)不使用相同的数据库.因此,当每个开发人员运行迁移时,将运行尚未针对他/她的数据库运行的所有迁移文件.

查看文档以获取更多信息.