56

How can I make a backup of my meteor mongo database?

If I run:

meteor mongo

the mongodump command does not work inside the meteor mongoshell

kask
  • 1,759
  • 2
  • 15
  • 21
  • 1
    mongodump doesn't run from the mongo shell. You need to download the full set mongodb tools from mongodb.org for your platform – Tarang May 29 '13 at 15:19

2 Answers2

93

First you need to spin up meteor.

Then if you run

meteor mongo

you will get an output something like this:

MongoDB shell version: 2.2.1

connecting to: 127.0.0.1:3001/meteor

Meteor db host is at 127.0.0.1 with a port of 3001. Exit the mongo shell and use mongodump from your terminal.

mongodump -h 127.0.0.1 --port 3001 -d meteor

Dumps will be located under the dumps folder in the folder you executed the above command.

You can import your db back to meteor with

mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor
Community
  • 1
  • 1
kask
  • 1,759
  • 2
  • 15
  • 21
  • I had to specify the port WITH the hostnumber like this: "mongodump -h 127.0.0.1:3002 --port 3002 -d meteor" – Charles Holbrow Jun 01 '13 at 20:29
  • mongoimport did not work for me but mongorestore did ( http://stackoverflow.com/questions/5495540/how-to-use-the-dumped-data-by-mongodump ) – garg Jul 08 '13 at 00:48
  • If anyone gets an error like following it's because the mongo port is different than the server, @mkc11 correctly points out to get the port from the mongo connection. `connected to: 127.0.0.1:3000 Mon Mar 17 14:07:26.139 DBClientCursor::init call() failed assertion: 10276 DBClientBase::findN: transport error: 127.0.0.1:3000 ns: admin.$cmd query: { isdbgrid: 1 }` – Shwaydogg Mar 17 '14 at 18:07
  • 6
    port has been changed to 3001 – Eliezer Steinbock Jul 16 '14 at 19:33
  • 1
    Hm ... I get: "SyntaxError: Unexpected number" Any ideas? – Amir Rahbaran Sep 26 '14 at 20:42
  • Hi, total newb to mongo and meteor. I have meteor and the mongo package along with it. When I typed mongodump -h 127.0.0.1 --port 3001 -d meteor, it gives me error: 2015-08-20T17:33:54.923-0700 SyntaxError: Unexpected number – psun Aug 21 '15 at 00:41
  • 1
    If you get unexpected number - you are doing this in the console after meteor mongo - you need to exit that shell, that step is only to show you the host address – Neil Oct 29 '15 at 18:31
  • 2
    For me, this command exits with an empty `dump/meteor` directory. No error. – Yanick Rochon Nov 11 '16 at 21:07
  • I am also facing the same problem it will create an empty directory after running this command. Any guesses why this is happening? – Parveen yadav Jan 03 '17 at 06:37
23

If you need to backup a meteor application DB deployed to meteor.com follow these steps:

  1. Be sure you are log in into your meteor dev account and generate a temporary connection link: $ cd yourapp $ meteor login $ meteor mongo yourapp.meteor.com --url

You'll get something like:

mongodb://client-ID:password-3be8-f6c5-50a9-password@production-db-b1.meteor.io:27017/yourapp_meteor_com

This link expires in 1 minute, so hurry up! :)

  1. Create a backup using mongodump command (http://docs.mongodb.org/manual/tutorial/backup-with-mongodump/#backup-from-non-local):

    $ mongodump -h production-db-b1.meteor.io --port 27017 --username client-ID --password password-3be8-f6c5-50a9-password -d yourapp_meteor_com

This backup the entire remote database into a default dump/ folder. Voila!

  1. If ever you need to import the db into local meteor mongo DB, start a mongo shell: $ meteor mongo MongoDB shell version: 2.4.9 connecting to: 127.0.0.1:3001/meteor

and in another terminal use mongorestore command

$ mongorestore --port 3001

dani
  • 321
  • 3
  • 7
  • This isn't working for me. I get an auth failed error every time. – charliemagee Dec 01 '14 at 21:52
  • 1
    This works well. I got `auth fails` error when I was too slow. Or you might have mistyped something. – Sanghyun Lee Dec 15 '14 at 14:08
  • 6
    I've created a simple script that does this in one single command. Hope this helps :) https://gist.github.com/brugnara/80f980e4e33da7b87408 – Daniele Vrut Jan 03 '15 at 23:22
  • For restoring I found I had to do: `mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/` – theicfire Mar 20 '15 at 21:45
  • after importing i'm seeing two separate database ([screenshot](https://www.dropbox.com/s/1f6kyfncc81dwlm/Screen%20Shot%202015-10-21%20at%203.53.52%20AM.png?dl=0)). any ideas how to put the contents of my remote (the appname_meteor_com) backup to the main meteor db? – RZKY Oct 20 '15 at 20:53