4

特定のガイド (http://bytesofpi.com/post/20898722298/pushing-your-meteor-project-to-heroku) に従って、プロジェクトを Heroku にデプロイしようとしています。

ステップの1つは、

var mongo_url = process.env.MONGOHQ_URL;

server/server.js の「MONGO_URL」を置き換える必要があります。

問題は、その変数がまったく見つからないことです。その変数についての唯一の言及は、次のコードにあります

    // check for a valid MongoDB URL right away
    if (!process.env.MONGO_URL)
         throw new Error("MONGO_URL must be set in environment");

誰もこれを経験したことがありますか、それを変更するために「MONGO_URL」を見つける場所を知っていますか?

4

3 に答える 3

14

あなたが言及した記事をガイドとして使用する代わりに、次のことを行うことをお勧めします。

Meteorite を使用して、ローカルの Meteor プロジェクトをビルドして実行します。

https://github.com/oortcloud/meteorite

手順はそのページにあります。

次に、このビルドパックを使用します。

https://github.com/oortcloud/heroku-buildpack-meteorite

繰り返しになりますが、README には、Heroku でアプリを作成する方法が記載されています (ワンライナー)。

この README の下部にある注意は、mongohq:free アドオンをアプリに追加できるように、支払いカードで Heroku アカウントを確認する必要があることを意味します。確認したら、次を実行します。

heroku addons:add mongohq:sandbox

Heroku にデータベースを追加します。

次に、アプリの ROOT_URL を設定します。アプリがコミットされたら (初回のみ)、ローカル アプリ ディレクトリ内にこれを入力します。

heroku config:set ROOT_URL=<<domain of your app>>

カスタム名を使用していない限り、 <> は次のようになります

http://appname.herokuapp.com

次に実行すると:

heroku config

MONGOHQ_URL が BUILDPACK_URL と ROOT_URL とともに設定されていることがわかります。

于 2012-11-03T00:34:46.790 に答える
0

Oortcloudビルドパックは、私が使用した中で最高のHerokuビルドパックです。

そうは言っても、Herokuはセッションアフィニティをサポートしていないため、行き止まりです。少なくとも、Herokuでアプリを起動して実行できる可能性はありますが、Herokuの人々がすべてのロードバランサーを交換することを決定しない限り、複数のdynoでアプリをスケーリングすることはできません。ご参考までに。デッドエンド。

CloudBeesは、より優れたMeteorホスティングプラットフォームのようです... https://github.com/CloudBees-community/meteor-clickstart

于 2013-03-10T04:45:43.793 に答える
0

ローカルの Meteor Mongo データベースを Heroku にデプロイするための最新のソリューションを見つけようとして、このタイトルを何度も参照しました。したがって、質問は実際にはMONGO_URLの設定に関するものですが、同じことをする人のためにこの回答をここに投稿しています。

(無料の) mLabs を使用して、ローカルの Meteor Mongo データベースを Heroku にプッシュするための更新されたソリューション (Meteor 1.3.2.4) を次に示します。私のアプリは隕石を使用せず、「馬」ビルドパックを使用しました。

1. ローカル mongo db のダンプを作成します

アプリフォルダーのターミナル(mongoシェルではない)で、

mongodump --port=3001 -o ../dump

2. db ファイルを「dump/your-db-name」から「dump」に移動します。

私のローカル meteor インスタンスでは、/dump フォルダーはアプリの上のフォルダーに配置されていたため、「ダンプ」はアプリのフォルダーと同じディレクトリにありました。「ダンプ」には、データベースにちなんで名付けられたフォルダーが含まれていました (「ダンプ/データベース名/」)。これにより、次のスクリプトが「'my-database-name' で何をするかわからない」という mongorestore エラーで失敗します。エラーを回避するには、「my-database-name」フォルダー内のすべてのファイルを「dump」に移動してから、「my-database-name」フォルダーを削除します。

デフォルトでは、データベース名は「meteor」なので、変更していない場合は「dump/meteor/」を探してください。

3. mLabs で、管理者権限を持つユーザーを作成していない場合は作成します。私の場合、セットアップ時に割り当てられたデフォルトのユーザーが機能しませんでした。

4. ダンプしたデータベースを Heroku アプリの mLabs にプッシュします。これは、Heroku アプリに mLabs プラグインを追加し、Heroku アプリ構成で「MONGO_URL」を設定していることを前提としています。これらが完了していない場合は、最初に実行する必要があります。

ターミナル (mongo シェルではない) で、アプリのディレクトリから「ダンプ」ディレクトリを保持するディレクトリに変更します。私の場合、それは単に「cd ../」でした。

Heroku アプリの mLabs プラグインに移動し、[ツール] タブをクリックして、デフォルトの「インポート」スクリプトを取得します。このスクリプトは私にはうまくいきませんでしたが、あなたにはうまくいくかもしれません。そうでない場合は、このスクリプトを貼り付け、変数をブラケット変数に置き換えます (ブラケットも置き換えます)。

mongorestore -h [your mLabs value]  -d [your mLabs default user name] -u [your mLabs created user name] -p [your mLabs created user's password]

スクリプトの実行後、mLabs の [コレクション] タブを更新して、プッシュされたデータを確認できるはずです。

頑張ってください:)これが誰かの役に立てば幸いです!

于 2016-06-19T07:40:24.097 に答える