Aplicación Meteor: restablecimiento de la base de datos de una aplicación implementada

82

¿Existe una forma sencilla de restablecer los datos desde una aplicación implementada por meteoritos?

Entonces, por ejemplo, si hubiera implementado una aplicación llamada test.meteor.com, ¿cómo podría restablecer fácilmente los datos recopilados por esa aplicación?

Ejecuto localmente meteor reset, pero no estoy seguro de qué hacer en producción.

CaptConrado
fuente

Respuestas:

108

Si tiene su aplicación con usted, puede hacer esto en el directorio de su proyecto

meteor deploy test.meteor.com --delete
meteor deploy test.meteor.com 

El primero elimina la aplicación, por lo que está todo en blanco. El segundo despliega una nueva instancia de la misma.

Akshat
fuente
Hola @akshat, ¿crees que stackoverflow.com/questions/10214385/how-does-meteor-work debería reabrirse?
Dan Dascalescu
esto parece un truco. ¿No hay forma más limpia?
dcsan
¿Este código hará que la URL esté disponible temporalmente?
Merlín
esto no tiene nada que ver con restablecer los datos de una aplicación en producción, y no entiendo por qué esta respuesta obtuvo tantos
votos positivos
43

una forma es iniciar sesión en la instancia de mongo usted mismo y eliminar los datos relevantes, algo así como por colección:

$ meteor mongo APP.meteor.com
> db.users.drop()
> db.xxx.drop()

podría simplemente eliminar toda la base de datos, pero eso confundiría a su entorno y tiene que --deletevolver a implementar la aplicación de todos modos.

> db.dropDatabase()
dcsan
fuente
2
Esta debería ser la respuesta aceptada, me ahorraste una reconstrucción + recarga, ¡gracias!
saimeunt
¡Hacer esto en producción con usuarios registrados es algo malo!
Adaptabi
2
@DotNetWise: Se supone que no debes tener una APP.meteor.com de producción. En el mejor de los casos, tienes una versión beta allí, y al ser una versión beta, la gente sabe que se esperan contratiempos como este (si su cuenta completa y todo lo que hicieron al ser eliminados cuenta como un contratiempo. Imagínese si Facebook hiciera eso. Me pregunto cuántas personas se molestaría en quedarse y recrear todo.)
ArtOfWarfare
Gran sugerencia: simplemente eliminar algunas bases de datos era todo lo que realmente necesitaba hacer.
ArtOfWarfare
3

Sé que esto es un poco antiguo, pero acabo de cambiar el nombre de mi colección. entonces en tu /lib/collections.jsarchivo,

someCollection = new Mongo.Collection("originalcollection");

se convierte en

someCollection = new Mongo.Collection("newcollectionname");

esto asumiendo, por supuesto, que su aplicación genera los datos para la base de datos.

Dave
fuente
1
No ha eliminado la colección anterior aquí, acaba de crear una nueva vacía. Si hizo esto en una aplicación que se ejecuta en un servidor (en lugar de solo localmente), aún tendrá datos persistentes en su servidor dentro de una colección llamada originalcollection.
kahmali
1
Sí @krose, lo reconozco, pero el punto es que es fácil y rápido si necesitas probar algo. Como señalaron otros, no se usa myapp.meteor.compara la producción. Y si lo hiciera, DEFINITIVAMENTE no querría eliminar una base de datos de producción. Hago esta estrategia para probar cosas nuevas de forma segura con mi modelo sin comprometer los datos. En mi humilde opinión, esta respuesta no fue tan mala como para merecer un voto negativo, ya que es una forma mucho más segura de lidiar con los datos de producción. luego siempre puede eliminar la colección específica, como explica el comentario de @ dcsan
Dave
1
parece un truco rápido que puede usar si sabe lo que está haciendo :) upvoted para equilibrar el downvote :)
dcsan
1

Simplemente puede acceder a su base de datos de meteoritos como

production-db-d2.meteor.io:27017/XYZ_meteor_com

donde XYZ = su subdominio

para la autenticación, use meteor auth (nombre de usuario y contraseña)

Puede acceder a él desde las herramientas rockmongo , robomogo , mongoui , etc.

Para acceder desde la línea de comando

Primero autentíquese escribiendo nombre de usuario, contraseña de meteor

$ meteor login

Entonces

$ meteor mongo XYZ.meteor.com

Nishchit Dhanani
fuente