Gracias por comentar. Sé que la solución de @ Dror es mucho más oficial en lugar de un truco, pero ya he asignado una respuesta antes. ¿Entonces no estoy muy seguro de si es un comportamiento bueno y permisible cambiar / actualizar la "respuesta"?
@SurjithSM 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.
Benjamin Crouzier
1
¿Se puede hacer con algún archivo de configuración? Probé con settings.json y no funcionará
Kostanos
1
esto se estrelló muchísimo en mi aplicación local.
Deborah
14
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):
'MONGO_URL' no se reconoce como un comando interno o externo
Abdul Hameed
1
es una variable de entorno, asegúrese de que no haya espacios alrededor del signo =
malix
9
En 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í:
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.
¿Eso significa que deberíamos entregar el alojamiento de mongodb a meteor en lugar de hacerlo por otros medios?
Drake Guan
2
@Drake: a menos que pueda ajustar Meteor para que funcione con su base de datos. 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 ...
Tamara Wijsman
@Drake: Si quieres que coloque mi comentario como respuesta (si te funcionó), házmelo saber.
Tamara Wijsman
@TomWijsman: ¡Lo intenté 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 ~
Drake Guan
Mucho más fácil de usar mongochef para copiar y pegar datos, en lugar de los comandos de exportación / importación. 3t.io/mongochef
Max Hodges
0
Todo lo que hice fue agregar la IP de mi servidor de gotas oceánicas digitales, en lugar de localhost, y funcionó:
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.
Respuestas:
Utilice la variable de entorno MONGO_URL. Algo como:
Reemplace
your_db
conmeteor
o con la base de datos que desee usar.fuente
export MONGO_URL=mongodb://localhost:27017/my_database_name
pondrá los datos en una base de datos llamadamy_database_name
. Quería decir que si quieres, puedes hacerloexport 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.json
archivo connpm init
, si aún no tiene uno.Ingrese y modifique la siguiente línea en ese archivo (reemplazando todas las
<...>
's):npm run meteor
fuente
En 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.
fuente
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:
Esto lo conectará al servidor Mongo de la aplicación Meteor. Ahora use db.copyDatabase así:
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'.
fuente
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
mongoexport
para volcar sus colecciones individualmente, luegomongoimport
para importar los archivos a la base de datos nombradameteor
en 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.
fuente
app/lib/mongo_runner.js
decide 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 interiorpackages/mongo-livedata/mongo_driver.js
, creo que simplemente puede cambiar el parámetro url en la línea 21. Si desea saber su valor, inserteconsole.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ó:
EDITAR: use MUP para implementar sus proyectos de meteoritos: https://github.com/zodern/meteor-up
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.
fuente
Pasó mucho tiempo y descubrí que requiere comillas alrededor de la URL:
fuente
Tienes que mantener tu aplicación ejecutándose en una ventana de terminal, luego abrir otra y escribir "meteor mongo" ¡y debería funcionar!
fuente