Mongorestore, von meteor Produktion-server zum lokalen
Ich habe festgestellt, dass viele gute Anleitungen zur Verwendung mongodump und mongorestore, um meine meteor Produktions-server und das backup wiederherzustellen, wenn es sein muss:
meteor mongo --url myApp.meteor.com
mongodump -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com -out dump/2014_10_21 -p [password from meteor mongo --url]
mongorestore -u client -h production-db-b2.meteor.io:27017 -d myApp_meteor_com dump/2014_10_21_v2/myApp_meteor_com -p [password from meteor mongo --url]
Was ich nicht gefunden habe ist eine Erklärung, wie das wiederherstellen einer backup-dump zu meinem lokalen meteor-app. Ich habe eine mongodump Ausgabe in meinem app-Ordner. Ich bin mir nicht sicher, ob ich benutzen kann mongorestore oder wenn es etwas anderes ich tun soll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, die ich gefunden habe:
cd
in Ihrem Projekt und führen Siemeteor
Befehlmongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor
ändern
127.0.0.1
wenn Ihr localhost hat die ip-Adresse und3001
zu einem port haben Sie mongodb auf (es ist in der Regel3001
oder3002
, so versuchen beide),dump/meteor
ist der Pfad zu einer Müllkippe, die Sie zuvor erstellt haben.Die einfachste Möglichkeit, den export der lokalen db:
cd
in Ihrem Projekt und führen Siemeteor
Befehlmongodump -h 127.0.0.1 --port 3001 -d meteor
wieder, ändern Sie die localhost-ip und den port, falls erforderlich. . Als ein Ergebnis, das dump/meteor Ordner mit den db-Dateien werden in den Ordner erstellt, die Sie
cd
vor der Ausführungmongodump
.Glück.
brew install mongo
.meteor/local/db/METEOR-PORT
.Dies ist, was ich Tue:
I. Erstellen Sie ein mongo Müllkippe im server
II. Laden Sie den dump in die Entwicklung der Maschine entpacken und in /tmp
III. Aktualisieren der lokalen meteor Entwicklung Datenbank
Erreichen das Gegenteil, das senden von lokalen app-Daten an die Produktion-app, schrieb ich dieses kleine shell-Skript. Es hat sich als nützlich erwiesen, während ich entwickle lokal und nur immer die demo synchronisiert der client-Ansicht. Hinweis: es hat
--drop
am Ende, das überschreiben Ihrer Produktionsdatenbank verwenden Sie mit Vorsicht!Er kümmert sich um die Kunden, pw und server-Daten aus
meteor mongo --url ...
die abläuft nach 1 minute und ist wirklich ärgerlich, um zu versuchen, Sie zu kopieren-einfügen in dieser Zeit.Können Sie
mongorestore
.Es ist so ziemlich das gleiche wie das, was Sie bereits haben.
In der ersten Zeile:
meteor mongo --url myApp.meteor.com
entfernen Sie einfach den letzten Teil, so wird die Zeile zu Lesen:meteor mongo --url
.Wenn auf Ihrem lokalen Rechner ausgeführt bekommen Sie die Informationen für die lokale Instanz der meteor-app. Von diesem Punkt aus können Sie einfach
mongorestore
zum wiederherstellen Ihrer lokalen db die Weise, die Sie schon aus der Ferne.Ich verwenden um eine
meteor reset
vor ein mongorestore, nur um sicher zu sein, dass meine db ist leer, aber ich weiß nicht, ob es den tatsächlichen Bedarf.Beachten Sie, dass die app ausgeführt werden soll, wenn dies zu tun.
Landete ich Schreibe ein Skript zum herunterladen der meteor-Datenbank. Check it out auf https://github.com/AlexeyMK/meteor-download
Nutzung (in der app root):
Ich bin mit der Google-Cloud für Meteor-hosting, und schrieb eigene Skripte.
Ich habe dieses läuft über einen cronjob ein backup auf google cloud storage:
https://github.com/markoshust/mongo-docker-backup-gcloud/blob/master/mongobackup.sh
Dann zur Wiederherstellung lokal, habe ich ein weiteres script, das die downloads backup aus google cloud storage, speichert lokal, dann wird ein lokales wiederherstellen:
https://github.com/markoshust/mongorestore.sh/blob/master/.mongorestore.sh
Habe ich diese arbeiten mit Meteor, dumm einfach und funktioniert Super 🙂 Nur Schalter db-Namen zu
meteor
und port3001
(config oder was auch immer Sie haben). Es ist meteor-agnostisch, also funktioniert mit jeder mongodb host/platform.