Meteor-App - Zurücksetzen der Datenbank einer bereitgestellten App

82

Gibt es eine einfache Möglichkeit, die Daten einer von Meteor bereitgestellten App zurückzusetzen?

Wenn ich beispielsweise eine App mit dem Namen bereitgestellt hätte test.meteor.com- wie könnte ich die von dieser App gesammelten Daten einfach zurücksetzen?

Vor Ort laufe ich meteor reset, bin mir aber nicht sicher, was ich in der Produktion tun soll.

CaptConrado
quelle

Antworten:

108

Wenn Sie Ihre App dabei haben, können Sie dies in Ihrem Projektverzeichnis tun

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

Der erste löscht die App, so dass alles leer ist. Der zweite stellt eine neue Instanz davon wieder bereit.

Akshat
quelle
Hey @akshat, denkst du, stackoverflow.com/questions/10214385/how-does-meteor-work sollte wieder geöffnet werden?
Dan Dascalescu
das scheint ein bisschen wie ein Hack. Gibt es keinen saubereren Weg?
dcsan
Wird dieser Code dazu führen, dass die URL vorübergehend verfügbar ist?
Merlin
Dies hat nichts mit dem Zurücksetzen von App-Daten in der Produktion zu tun, und ich verstehe nicht, warum diese Antwort so viele positive Stimmen erhielt
MickaelFM
43

Eine Möglichkeit besteht darin, sich selbst bei der Mongo-Instanz anzumelden und die relevanten Daten zu löschen, so etwas wie pro Sammlung:

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

Sie könnten einfach die gesamte Datenbank löschen, aber das würde ihre Umgebung verwirren und Sie müssen --deletedie App trotzdem neu bereitstellen.

> db.dropDatabase()
dcsan
quelle
2
Dies sollte die akzeptierte Antwort sein, Sie haben mir einen Wiederaufbau + einen erneuten Upload erspart, danke!
Saimeunt
Dies in der Produktion mit angemeldeten Benutzern zu tun, ist eine schlechte Sache!
Adaptabi
2
@DotNetWise: Du sollst keine Produktions-APP.meteor.com haben. Bestenfalls gibt es dort eine Beta, und da es sich um eine Beta handelt, erwarten die Leute Schluckauf wie diesen (wenn ihr gesamtes Konto und alles, was sie jemals gelöscht haben, als Schluckauf gilt. Stellen Sie sich vor, Facebook hat das getan - ich frage mich, wie viele Leute würde sich die Mühe machen, zu bleiben und alles neu zu
erschaffen
Toller Vorschlag - einfach ein paar Datenbanken zu löschen war alles, was ich wirklich tun musste.
ArtOfWarfare
3

Ich weiß, dass dies ein bisschen alt ist, aber ich habe gerade meinen Sammlungsnamen geändert. also in deiner /lib/collections.jsAkte,

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

wird

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

Dies setzt natürlich voraus, dass Ihre App die Daten für die Datenbank generiert.

Dave
quelle
1
Sie haben die alte Sammlung hier nicht entfernt, sondern nur eine neue leere erstellt. Wenn Sie dies in einer App getan haben, die auf einem Server ausgeführt wird (anstatt nur lokal), sind auf Ihrem Server weiterhin Daten in einer Sammlung mit dem Namen vorhanden originalcollection.
Kahmali
1
Ja @krose, ich erkenne das, aber der Punkt ist, dass es einfach und schnell ist, wenn Sie etwas testen müssen. Wie andere betonten, verwenden Sie nicht myapp.meteor.comfür die Produktion. Und wenn Sie dies tun würden, würden Sie definitiv nicht einfach eine Produktionsdatenbank löschen wollen. Ich mache diese Strategie, um sicher neue Dinge mit meinem Modell auszuprobieren, ohne Daten zu gefährden. Meiner Meinung nach war diese Reaktion nicht so schlecht, dass sie eine Abwertung verdient hätte, da dies eine viel sicherere Möglichkeit ist, mit Produktionsdaten umzugehen. Sie können dann immer die spezifische Sammlung löschen, wie @ dcsans Kommentar erklärt
Dave
1
scheint ein schneller Hack zu sein, den Sie verwenden können, wenn Sie wissen, was Sie tun :) upvoted, um die downvote auszugleichen :)
dcsan
1

Sie können einfach auf Ihre Meteor-DB als zugreifen

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

Dabei ist XYZ = Ihre Subdomain

Verwenden Sie zur Authentifizierung meteor auth (Benutzername und Passwort).

Sie können mit Rockmongo , Robomogo , Mongoui usw. darauf zugreifen .

Zugriff über die Befehlszeile

Authentifizieren Sie sich zuerst, indem Sie den Benutzernamen und das Passwort des Meteors eingeben

$ meteor login

Dann

$ meteor mongo XYZ.meteor.com

Nishchit Dhanani
quelle