-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build fails to deploy at mlab/mongolab (mongoDB) add-on #2
Comments
This is by design. Heroku offers mongoDB through mLab (formerly mongoLab) as an integrated “add on” feature. A free tier is provided, which includes an instance with very limited storage. This convenience allows developers to build and connect applications to a mongoDB database directly from the heroku dashboard or cli. meteor-hero takes advantage of this free instance when a database is not specified. The meteor framework bakes mongoDB in as its native persistence layer. When you install meteor, a local copy of mongoDB comes bundled. This makes it easy to start developing storage-dependent applications without having to install and configure a database server separately. You can find it in the application’s .meteor/local/db folder. However, when you run the build process over your application, meteor doesn’t include that mongoDB instance. If your application requires mongoDB, you are required to provide a connection string to an instance via a MONGO_URL environment variable. When the user doesn’t supply a MONGO_URL, meteor-hero defaults to creating a database in mLab and setting that environment variable with a connection string to this newly-created instance. The documentation should be updated to reflect these two pre-conditions: (1) a valid credit card must be on file with your heroku account if your application requires a database for its build and doesn’t already have one, and (b) enviroment variable MONGO_URL set with a valid connection string and passed in a configuration file if the application does have an existing, externally-accessible mongoDB instance or cluster (self-hosted, cloud-based, Atlas, etc.). |
Regarding the oplog, which meteor uses for reactive updating: it is not available in Heroku’s free (sandbox) tier. It is, however, available in its Shared tier (assuming using environment variable MONGO_OPLOG_URL); Dedicated tier users are required to use mongoDB Share Streams instead. Visit https://docs.mlab.com/oplog/ for more information. |
@alimgafar Are you saying that
And it is failing because of the lack of credit card. That said, it also says "No MONGO_URL set so creating one on Heroku..." in its output, and I don't understand why! |
@rikkiprince meteor-hero doesn't require the credit card; Heroku does. meteor-hero uses Heroku APIs to facilitate the setup. Heroku uses the concept of a verified account before allowing you to use an add-on, whether it is from the UI or by the API. Verification requires adding a valid credit card to your billing info in Heroku. (See https://devcenter.heroku.com/articles/account-verification and see section When is verification required?) The free MongoDB sandbox from mLab is an add-on. |
Ok, yep, I understand all of that. But I don't understand why meteor-hero is still trying to create the MongoDB sandbox add-on when I supply This seems like a bug. I perused the source code a little, but couldn't figure out why it might not be detecting the command line argument. The only way I could get it to recognise the MONGO_URL variable was to use a But even then once it deployed the container it didn't work, presumably because the node docker image that meteor-hero uses is so out of date? I couldn't debug further because I'm not sure how to get the logs out of a container in Heroku. So it was easier to just use the meteor-buildpack-horse to get my app onto Heroku. |
If the account does not have a credit card on file, the build crashes and fails to deploy when it adds the mongoDB database through mLab.
The text was updated successfully, but these errors were encountered: