7

I would like to have two separate applications use the same Mongo DB instance, and since I am developing them at the same time I would like to be able to share the same development DB instance.

I realize that each instance of Meteor would have to run on it's own port. Is there a way to force meteor or mrt to connect to a local socket like the system version of MongoDB?

MrMowgli
  • 873
  • 7
  • 23

2 Answers2

10

Yeah, you can just start meteor with the MONGO_URL parameter like:

$ MONGO_URL="mongodb://localhost:27017/myapp" meteor

or

$ MONGO_URL="mongodb://localhost:27017/myapp" meteor --port 4000

This assumes you have mongodb installed on your system. See this question for ways to make this process a little easier by using environment variables or a start script.

Community
  • 1
  • 1
David Weldon
  • 63,632
  • 11
  • 148
  • 146
6

David's answer is in the right direction, but threw me off a little. Instead, we're doing this to start the first app as normal:

$ meteor

Then to start the second app and connect to the database of the first, we're doing:

$ MONGO_URL="mongodb://localhost:3001/meteor" meteor --port 3002

The key here is that meteor starts its own mongo instance on port 3001, and we can connect to that directly from a second meteor instance. David's answer uses your system's mongo for both apps.

chmac
  • 11,757
  • 3
  • 32
  • 36
  • I like the way you have it set up! I probably won't end up using it though since I've found that I end up using the system mongo instance to do my velocity fixture loading as well using David's technique. – MrMowgli Nov 10 '15 at 21:19
  • So glad I scrolled down, because while I understand David's answer, it also confused me for a moment, and I was actually wondering how to do exactly what you show here. Thanks. – Mac-Gon Apr 08 '16 at 12:46