我最近在闲暇时间一直在玩Mongo DB(对于我通常使用关系数据库的工作,或者最近使用的是RDF三重商店),我有一个一直困扰着我的问题。当您开发了一个使用Mongo DB的应用程序并且现在需要在生产环境中部署时,推荐的数据库发布流程是什么?
要说清楚,我不是在谈论简单地在服务器上部署现有数据库,我更感兴趣的是如何最初在可用于应用程序的状态下创建数据库。
例如,对于SQL数据库,您可能拥有一组用于创建数据库的脚本,创建所有必需的表,使用任何所需数据初始化表,设置访问权限,视图等。
困扰我的是,对于Mongo,如果查询它们时数据库,表等不存在则会自动创建它们。但是我知道可以在JS中编写Mongo脚本来执行Mongo命令序列。
简而言之,我想问题是你是否需要编写这些设置和初始化脚本的麻烦,或者仅仅是安装Mongo并将应用程序指向它的情况?
答案 0 :(得分:3)
与SQL数据库相比,您可能需要为生产设置mongo。在许多情况下,除了将应用程序指向一个空的mongo实例之外,没有什么需要做的。
您有时希望使用数据为某些集合设定种子。有很多方法可以做到这一点。您可以使用mongodump和mongorestore(它们可以处理单个集合或整个数据库)。您可以通过mongo驱动程序或通过更高级别的包装器(如mongoose)加载json文件。
您可能还想在某些集合上创建索引。像mongoose这样的高级包装器会自动执行此操作,但是您可能希望编写一个脚本,该脚本使用您从命令行运行的集合中所需的索引调用ensureIndex。在数据库中没有文件并不重要。
答案 1 :(得分:0)
我建议如何部署MangoDB。最好的方法是使用单个tar命令复制db数据目录。然后获取.tar文件并在生产环境中确定它。确保数据库版本兼容。