GUIクライアント用に実行中のMongoDBサーバーが( wxPython によって)しばらくの間存在するとしましょう。
新しいMeteorプロジェクトを既に存在するMongoDBに接続するにはどうすればよいですか?
環境変数MONGO_URLを使用します。何かのようなもの:
export MONGO_URL=mongodb://localhost:27017/your_db
置換your_db
with meteor
または使用する任意のdb。
npm
を使用します。
まだない場合は、package.json
でnpm init
ファイルを作成します。
そのファイルに次の行を入力して変更します(すべての<...>
を置き換えます)。
"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
npm run meteor
だけでmeteorを開始できますダニーの回答へのコメントトムワイスマンの推奨 パッケージング/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');
これにより、localhostの標準ポートで実行されているMongoDBサーバーからデータベースmyappDatabaseがMeteorアプリMongoサーバーにコピーされます。 Meteorアプリが使用するデータベース名は「meteor」です。
データをMeteor MongoDBデータベースにコピーするだけです。Meteorを既存のデータベースに接続しようとする理由はありません。
mongoexport
を使用してコレクションを個別にダンプしてから、mongoimport
を使用して、Meteor MongoDBインスタンスのmeteor
という名前のデータベースにファイルをインポートします。 Meteor MongoDBインスタンスは、bind_address 127.0.0.1でポート3002で実行され、データファイルはMeteorプロジェクトサブディレクトリ.meteor/local/db
。
MongoDBのインポート/エクスポートに慣れていない場合は、 ドキュメント を参照してください。
Localhostの代わりに、デジタルオーシャンドロップサーバーの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の両方をホストします。mongoDBはセキュリティのためにパブリックIPからアクセスできません理由。