23

mongodump と mongorestore を使用して、Meteor 運用サーバーをバックアップし、必要に応じてバックアップを復元する方法に関する適切な手順がたくさん見つかりました。

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]

私が見つけていないのは、バックアップダンプローカルの流星アプリに復元する方法の説明です。app フォルダーに mongodump の出力があります。mongorestore を使用できるかどうか、または他にやるべきことがあるかどうかはわかりません。

4

6 に答える 6

38

私が見つけた最も簡単な方法:

  1. cdプロジェクトでmeteorコマンドを実行します
  2. 別の端末で:

mongorestore -h 127.0.0.1 --port 3001 -d meteor dump/meteor

127.0.0.1localhost の IP アドレスが異なり3001、mongodb を使用しているポート (通常は3001または3002であるため、両方を試してください) への変更dump/meteorは、以前に作成したダンプへのパスです。

また、ローカル データベースをエクスポートする最も簡単な方法:

  1. cdプロジェクトでmeteorコマンドを実行します
  2. 別の端末で:

mongodump -h 127.0.0.1 --port 3001 -d meteor

再度、必要に応じて localhost の IP とポートを変更します。. その結果、db ファイルを含む dump/meteor フォルダーが、cd実行前に作成したフォルダーに作成されますmongodump

幸運を。

于 2015-01-21T11:43:30.770 に答える
6

逆に、ローカル アプリ データを本番アプリに送信するために、この小さなシェル スクリプトを作成しました。私がローカルで開発していて、クライアントが表示できるようにデモを同期している間、これは役に立ちました。--drop本番データベースを上書きする最後にあることに注意してください。注意して使用してください。

1 分後に有効期限が切れるクライアント、pw、およびサーバーのデータを処理し、meteor mongo --url ...その時間内にコピーして貼り付けようとするのは本当に面倒です。

#!/usr/bin/env bash

mongodump -h 127.0.0.1:3001 -d meteor -o ~/www/APPNAME/server/dump
IN=`meteor mongo --url APPNAME.meteor.com`
client=`echo $IN | awk -F'mongodb://' '{print $2}' | awk -F':' '{print $1}'`
echo $client
pw=`echo $IN | awk -F':' '{print $3}' | awk -F'@' '{print $1}'`
echo $pw
serv=`echo $IN | awk -F'@' '{print $2}' | awk -F'/' '{print $1}'`
echo $serv
mongorestore -u $client -h $serv -d APPNAME_meteor_com dump/meteor -p $pw --drop
于 2014-05-14T04:38:56.550 に答える
5

これが私がすることです:

I. サーバーに mongo ダンプを作成する

    DATE=$(日付 +%m%d%y_%H.%M);
    mongodump --host localhost -d アプリ名 -o /tmp/APPNAME_$DATE
    tar -cjvvf /tmp/APPNAME_$DATE.tar.bz2 /tmp/APPNAME_$DATE

Ⅱ.開発マシンでダンプをダウンロードし、/tmp で展開します。

    scp root@$HOST:/tmp/APPNAME_$DATE.tar.bz2 /tmp/
    cp /tmp/APPNAME_$DATE.tar.bz2 .
    mkdir -p /tmp/APPNAME_$DATE
    cd /tmp/APPNAME_$DATE
    tar -xjvf /tmp/APPNAME_$DATE.tar.bz2

III. ローカル流星開発データベースを更新する

    mongorestore --db meteor -h localhost --port 8082 --drop /tmp/APPNAME_$DATE/tmp/APPNAME_$DATE/APPNAME

于 2013-10-22T07:54:02.830 に答える
4

使用できますmongorestore

それはあなたがすでにやったこととほとんど同じです。

最初の行:meteor mongo --url myApp.meteor.comの最後の部分を削除して、行が次のようになるようにします: meteor mongo --url。ローカル マシンで実行すると、Meteor アプリのローカル インスタンスの情報が取得されます。その時点から、mongorestoreすでにリモートで行った方法でローカル データベースを復元するために使用できます。

私はmeteor reset自分のデータベースが空であることを確認するためにmongorestoreの前に実行していましたが、実際に必要かどうかはわかりません。

これを行うときは、アプリが実行されている必要があることに注意してください。

于 2013-10-22T05:47:01.550 に答える