Wie führe ich eine einmalige DB-Synchronisierung mit einer anderen DB in MongoDB durch?

8

Ich habe separate MongoDB-Server für Entwicklung und Produktion, und ich möchte die tatsächlichen Daten für einige Zeit im Entwicklungsserver behalten. Was ich dafür verwenden sollte: mongodump , mongoimport oder etwas anderes?

Erläuterung : Ich möchte Daten von der Produktion in die Entwicklung kopieren.

    
acelot 14.09.2012, 06:27
quelle

3 Antworten

7

Sie können die Befehle db.copyDatabase(...) oder db.cloneDatabase(...) verwenden:

Ссылка

Dies ist schneller als mongodump / mongorestore, weil es die Erstellung der bson-Darstellung auf der Festplatte überspringt.

    
Thomas 14.09.2012, 06:41
quelle
9

Wenn es eine einmalige Sache ist

und Sie möchten die Parameter, z. B. die zu synchronisierenden Sammlungen, genau steuern:

  • mongodump um Bson-Dateien Ihrer Production-DB zu erstellen Ihre lokale Maschine
  • mongorestore um anschließend die versenkten BSON-Dateien in zu erhalten Ihre lokale DB

Ansonsten sollten Sie mongo-sync

ausprobieren

Es ist ein Skript, das ich für mich selbst geschrieben habe, als ich meine Local MongoDB -Datenbank ständig in meine Produktions-DB und von dort aus für ein Projekt kopieren musste (ich weiß, dass es dumm ist).

Sobald Sie Ihre DB-Details in config.yml abgelegt haben, können Sie die Synchronisation mit zwei einfachen Befehlen starten:

%Vor%

Wenn Sie es in einem Projekt verwenden, ist es eine gute Idee, config.yml zu .gitignore

hinzuzufügen

    
Sheharyar 15.02.2015 00:37
quelle
1

Wenn die Entwicklungsdatenbank genau wie die Produktionsdatenbank aussehen soll, können Sie die Dateien einfach kopieren. Ich führe gerade ein Setup, wo ich meine MongoDB-Datenbank zwischen meinem Desktop und meinem Notebook mit Dropbox synchronisieren - auch das funktioniert einwandfrei.

    
Philipp 14.09.2012 08:23
quelle