我最近一直在学习如何将 MongoDB 与 Node.js 一起使用,并且一直想知道如何与团队的其他成员共享 MongoDB 更改,例如,通过 git 存储库。
例如,如果我需要一个users
在 MongoDB 中命名的集合,并且该集合有一些包含字段givenName
和的文档familyName
,这将很容易做到,因为当团队中的每个开发人员运行该应用程序时,MongoDB 将自动创建该集合和字段,因为它们是在代码中编写的。
现在让我们说由于某种原因我需要将两个字段重命名为forename
and surname
。
该应用程序已经运行了一段时间,因此团队中的所有开发人员都拥有该users
集合的本地副本,其中包含带有givenName
和的文档familyName
;生产服务器也是如此。
据我了解,我不能简单地将代码中的字段名称更改为使用新字段名称,因为我们会“丢失”旧字段名称中使用的任何数据(“丢失”我当然是指我们只是不会再看到旧数据,即使它仍然存在,正如预期的那样)。
所以我想我还必须在 MongoDB shell 中运行一个命令来重命名所有相关文档中的字段。
但如果我这样做,那么只有我的本地users
集合副本是最新的。
使用 MySQL 时,我们要么在需要时运行的 SQL 文件中通过 git 共享所有更改,要么在可用时使用迁移,例如在 PHP 中的 Laravel 框架中。
我们是否会像使用 MySQL 一样做同样的事情,并保留changes.js
我们在 MongoDB shell 中运行的文件?
或者有没有更好的方法来做到这一点,也许在应用程序代码本身中,以便在开发人员运行应用程序时自动运行更改?
换句话说,在团队成员之间共享 MongoDB 更改的最佳实践是什么?