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.

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.


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()

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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.