しばらくの間、GUIクライアント( wxPythonによる)用に実行中のMongoDBサーバーがあるとしましょう。
新しいMeteorプロジェクトを既存のMongoDBに接続するにはどうすればよいですか?
しばらくの間、GUIクライアント( wxPythonによる)用に実行中のMongoDBサーバーがあるとしましょう。
新しいMeteorプロジェクトを既存のMongoDBに接続するにはどうすればよいですか?
環境変数 MONGO_URL を使用します。何かのようなもの:
export MONGO_URL=mongodb://localhost:27017/your_db
your_db
または使用しmeteor
たい任意のデータベースに置き換えます。
私たちは使用しますnpm
:
まだファイルがない場合は、でpackage.json
ファイルを作成します。npm init
そのファイルに次の行を入力して変更します (すべての を置き換えます<...>
)。
"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
npm run meteor
dannyの回答へのコメントで、TomWijsmanはpackages/mongo-livedata/mongo_driver.jsの21行目にパッチを適用することを推奨しています。より適切な場所はapp/meteor / run.jsの460行目です。このようにして、環境変数が存在する場合でも取得されます。 、HerokuでMeteorを実行している場合など。デフォルトのハードコードされたmongodb://127.0.0.1をMongoDBサーバーの場所に変更するだけです。
db.copyDatabase を使用してこれを行うことができますが、バグがあり、Meteor のデータを更新できないことに注意してください。https://github.com/meteor/meteor/issues/61を参照してください
Meteor の開発バージョンを使用している場合は、Meteor アプリを起動してから実行することで、実行中の MongoDB サーバーからデータを転送できます。
mongo --port 3002
これにより、Meteor アプリの Mongo サーバーに接続されます。次のように db.copyDatabase を使用します。
db.copyDatabase('myappDatabase', 'meteor', 'localhost');
これにより、データベース myappDatabase が、localhost の標準ポートで実行されている MongoDB サーバーから Meteor アプリ Mongo サーバーにコピーされます。Meteor アプリが使用するデータベース名は「meteor」です。
私がしたことは、localhost の代わりに私の Digital Ocean ドロップレット サーバーの IP を追加することだけでした。
env: {
ROOT_URL: 'http://yourdomain.com',
MONGO_URL: 'mongodb://104.236.24.66:27017/meteor',
PORT: 3002,
},
編集: MUP を使用して流星プロジェクトをデプロイします: https://github.com/zodern/meteor-up
env: {
ROOT_URL: 'https://www.example.com',
MONGO_URL: 'mongodb://localhost/meteor',
},
Mup は Docker を使用し、2 つのコンテナーを「リンク」して、同じ VM (サーバー) でアプリと mongo の両方をホストします。セキュリティ上の理由から、パブリック IP から mongoDB にアクセスできないようにする必要があります。
ある端末ウィンドウでアプリを実行し続け、別の端末ウィンドウを開いて「meteor mongo」と入力すると、機能するはずです。