Digamos que hay un servidor MongoDB en ejecución para un cliente GUI (por wxPython ) durante un tiempo.
¿Cómo puedo conectar mi nuevo proyecto Meteor a mi MongoDB ya existente ?
Digamos que hay un servidor MongoDB en ejecución para un cliente GUI (por wxPython ) durante un tiempo.
¿Cómo puedo conectar mi nuevo proyecto Meteor a mi MongoDB ya existente ?
Respuestas:
Utilice la variable de entorno MONGO_URL. Algo como:
export MONGO_URL=mongodb://localhost:27017/your_db
Reemplace your_dbcon meteoro con la base de datos que desee usar.
export MONGO_URL=mongodb://localhost:27017/my_database_namepondrá los datos en una base de datos llamada my_database_name. Quería decir que si quieres, puedes hacerlo export MONGO_URL=mongodb://localhost:27017/meteor. Pensé que aconsejaría nombrar el nombre de su base de datos de la misma manera que su proyecto.
Usamos npm:
Cree un package.jsonarchivo con npm init, si aún no tiene uno.
Ingrese y modifique la siguiente línea en ese archivo (reemplazando todas las <...>'s):
"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
npm run meteorEn los comentarios a la respuesta de danny, Tom Wijsman recomienda parchear los paquetes / mongo-livedata / mongo_driver.js, línea 21. Un lugar mejor es app / meteor / run.js, línea 460. De esta manera, la variable de entorno aún se selecciona si está presente , como cuando se ejecuta Meteor en Heroku. Simplemente cambie el mongodb: //127.0.0.1 codificado por defecto a la ubicación de su servidor MongoDB.
Puede usar db.copyDatabase para hacer esto, con la advertencia de que hay un error y no puede actualizar los datos en Meteor. Ver https://github.com/meteor/meteor/issues/61
Si está utilizando la versión de desarrollo de Meteor, puede transferir datos desde un servidor MongoDB en ejecución iniciando su aplicación Meteor y luego haciendo:
mongo --port 3002
Esto lo conectará al servidor Mongo de la aplicación Meteor. Ahora use db.copyDatabase así:
db.copyDatabase('myappDatabase', 'meteor', 'localhost');
Esto copiará la base de datos myappDatabase de un servidor MongoDB que se ejecuta en el puerto estándar en localhost, al servidor Mongo de la aplicación Meteor. El nombre de la base de datos que utiliza la aplicación Meteor es 'meteorito'.
Simplemente copie los datos a la base de datos Meteor MongoDB, no hay razón para intentar conectar Meteor a la base de datos existente y arriesgarse a sobrescribir cosas.
Use mongoexportpara volcar sus colecciones individualmente, luego mongoimportpara importar los archivos a la base de datos nombrada meteoren la instancia de Meteor MongoDB. La instancia de Meteor MongoDB se ejecuta en el puerto 3002 con bind_address 127.0.0.1, y los archivos de datos están en el subdirectorio del proyecto Meteor .meteor/local/db.
Consulte la documentación si no está familiarizado con la importación / exportación en MongoDB.
app/lib/mongo_runner.jsdecide cómo ejecutarlo (es posible que ni siquiera necesite el código de lanzamiento, por lo tanto, busque cómo deshabilitarlo). La conexión parece ocurrir en el interior packages/mongo-livedata/mongo_driver.js, creo que simplemente puede cambiar el parámetro url en la línea 21. Si desea saber su valor, inserte console.log(url);en la línea anterior, reinicie Meteor y observe de cerca la salida de Meteor. Asegúrese de llamar a Meteor una vez en su aplicación para que se active ...
console.log(url);y obtuve la información! Le sugiero que haga esto tan completo como una respuesta alternativa porque creo que brinda ayuda a la comunidad, o al menos, a personas como yo que aún no están familiarizadas con el meteorito ~
Todo lo que hice fue agregar la IP de mi servidor de gotas oceánicas digitales, en lugar de localhost, y funcionó:
env: {
ROOT_URL: 'http://yourdomain.com',
MONGO_URL: 'mongodb://104.236.24.66:27017/meteor',
PORT: 3002,
},
EDITAR: use MUP para implementar sus proyectos de meteoritos: https://github.com/zodern/meteor-up
env: {
ROOT_URL: 'https://www.example.com',
MONGO_URL: 'mongodb://localhost/meteor',
},
Mup usa Docker y "vinculará" sus 2 contenedores, alojando así tanto la aplicación como mongo en la misma VM (servidor). Su mongoDB no debería ser accesible desde la IP pública por razones de seguridad.
Tienes que mantener tu aplicación ejecutándose en una ventana de terminal, luego abrir otra y escribir "meteor mongo" ¡y debería funcionar!