我正在使用node.js服务器,并将MongoDB与node-mongo-native一起使用。 我正在寻找类似于Rails迁移的数据库迁移框架。有什么建议吗?
答案 0 :(得分:8)
我不知道用于执行MongoDB迁移的特定本机Node.js工具..但您可以选择使用其他语言编写的工具(例如,Mongoid Rails Migrations)。
值得注意的是,MongoDB中Schema design和数据建模的方法与关系数据库不同。特别是,不要求集合具有一致或预先声明的模式,因此不需要许多传统的迁移操作,例如添加和删除列。
然而,涉及数据转换的迁移仍然有用。
如果您的应用程序希望数据采用某种格式(例如,您希望将“名称”字段拆分为“名字”和“姓氏”),那么如果使用的想法可以使用几种策略用另一种编程语言编写的迁移工具并不吸引人:
答案 1 :(得分:6)
我刚刚编写了一个基于node-mongo-native的基本迁移框架:https://github.com/afloyd/mongo-migrate。它将允许您向上和向上迁移向下/向下/向下迁移到特定的修订号。它最初基于节点迁移,但显然需要稍微更改以使其工作。
修订历史记录存储在mongodb中,而不是存储在文件系统上,如node-migrate,允许使用单个数据库在同一项目上进行协作。否则,每个运行迁移的开发人员都可能导致迁移对数据库多次运行。
迁移本身是基于文件的,也有助于在每个开发人员(或不是)不使用相同数据库的单个项目上进行协作。因此,当每个开发人员运行迁移时,将运行尚未针对他/她的数据库运行的所有迁移文件。
查看documentation了解详情。