Mongorestore,从流星生产服务器到本地

Rae*_*mon 23 mongodb mongorestore mongodump meteor

我已经找到了很多关于如何使用mongodump和mongorestore的良好指示,备份我的流星生产服务器并在需要时恢复备份:

meteor mongo --url myApp.meteor.com

mongodump -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com -out dump/2014_10_21 -p [password from meteor mongo --url]

mongorestore -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com dump/2014_10_21_v2/myApp_meteor_com -p [password from meteor mongo --url]
Run Code Online (Sandbox Code Playgroud)

我没有找到的解释是如何将备份转储恢复我的本地流星应用程序.我的app文件夹中有一个mongodump输出.我不确定我是否可以使用mongorestore,或者我是否应该做其他事情.

Ale*_*eev 37

我发现最简单的方法:

  1. cd在你的项目和执行meteor命令
  2. 在另一个终端:

mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor

改变127.0.0.1,如果你的本地主机具有不同的IP地址,并3001给你有关MongoDB端口(通常是30013002,所以尝试这两种),dump/meteor是通向你以前创建转储.

也是导出本地db的最简单方法:

  1. cd在你的项目和执行meteor命令
  2. 在另一个终端:

mongodump -h 127.0.0.1 --port 3001 -d meteor

再次,如果需要,更改localhost IP和端口..因此,将cd在运行之前的文件夹中创建包含db文件的dump/meteor文件夹mongodump.

祝好运.

  • 只是补充一点,如果你的Mac上没有安装mongo,你可以这样做:````brew install mongo```` (3认同)

小智 5

这是我的工作:

I.在服务器中创建一个mongo转储

    DATE = $(日期+%m%d%y_%H.%M);
    mongodump --host本地主机-d APPNAME -o / tmp / APPNAME_ $ DATE 
    tar -cjvvf /tmp/APPNAME_$DATE.tar.bz2 / tmp / APPNAME_ $ DATE

二。将转储下载到开发机器中,并在/ tmp中解压缩

    scp root @ $ HOST:/tmp/APPNAME_$DATE.tar.bz2 / tmp /
    cp /tmp/APPNAME_$DATE.tar.bz2。
    mkdir -p / tmp / APPNAME_ $ DATE 
    cd / tmp / APPNAME_ $ DATE 
    tar -xjvf /tmp/APPNAME_$DATE.tar.bz2

三,更新本地流星开发数据库

    mongorestore --db流星-h localhost-端口8082 --drop / tmp / APPNAME_ $ DATE / tmp / APPNAME_ $ DATE / APPNAME


cor*_*eyb 5

为了实现相反的目的,将本地应用程序数据发送到生产应用程序,我编写了这个小shell脚本.当我在本地开发并且只是为同一个客户端查看同步演示时,它非常有用.注意它--drop最后会覆盖你的生产数据库,小心使用!

它负责meteor mongo --url ...1分钟后过期的客户端,pw和服务器数据,并且在这段时间内尝试复制粘贴真的很烦人.

#!/usr/bin/env bash

mongodump -h 127.0.0.1:3001 -d meteor -o ~/www/APPNAME/server/dump
IN=`meteor mongo --url APPNAME.meteor.com`
client=`echo $IN | awk -F'mongodb://' '{print $2}' | awk -F':' '{print $1}'`
echo $client
pw=`echo $IN | awk -F':' '{print $3}' | awk -F'@' '{print $1}'`
echo $pw
serv=`echo $IN | awk -F'@' '{print $2}' | awk -F'/' '{print $1}'`
echo $serv
mongorestore -u $client -h $serv -d APPNAME_meteor_com dump/meteor -p $pw --drop
Run Code Online (Sandbox Code Playgroud)


Mar*_*tin 4

您可以使用mongorestore

这与您已经做的几乎相同。

在第一行中:meteor mongo --url myApp.meteor.com只需删除最后一部分即可,该行将显示为:meteor mongo --url。当在本地计算机上执行时,您将获得流星应用程序本地实例的信息。从那时起,您可以像mongorestore远程那样恢复本地数据库。

meteor reset我过去常常在 mongorestore 之前执行 a before 操作,只是为了确保我的数据库是空的,但我不知道这是否确实有必要。

请注意,执行此操作时应用程序应该正在运行。