I want to use Meteor packages (like minimongo) outside the main Meteor app. Furthermore, I would like to connect to the MongoDB database of running Meteor app. So that I can have a background worker and similar things which should read/write to the app database. I would like to use minimongo to be really compatible with Meteor (like having same IDs). And I would like to be able to connect to app database also in development.
Related
I want to scale my application using cluster package of meteor . I have used these two commands in the terminal.
CLUSTER_DISCOVERY_URL=mongodb://mongo-url CLUSTER_SERVICE=web
CLUSTER_ENDPOINT_URL=http://ipaddresss:port meteor
The CLUSTER_DISCOVERY_URL is the URL to a MongoDB database. The cluster package uses the MongoDB database to communicate between the Meteor applications. This database can be the Meteor application database (where all your other collections are stored) or a different one.
The CLUSTER_SERVICE variables stores a name for your application which is used internally by the package.
The CLUSTER_ENDPOINT_URL is the URL to your application.
After running these commands my application has not started on my local machine and it does not show any error in the console.
How can I solve this?
When developing with Meteor locally, one execute meteor reset locally to refresh the database.
Can one run this command on a production level app deployed on Bluemix without digging into the Mongo console?
The meteor reset command actually deletes the local mongo database files in .meteor/local. Since the database isn't stored in the application container when running in Cloud Foundry, there isn't an equivalent operation as a one liner.
Seems like your only option is to retrieve the connection credentials from your application cf env appname and then stop the application, connect with the mongo command line, and use one of the methods described in this answer to clean your data out.
I develop Meteor application on my local computer, and deploy it to meteor.com. I want to have an opportunity to use remote production MongoDB database for local development.
So, I get url to my DB with meteor mongo --url myapp.meteor.com, then I add it to my MONGO_URL environment variable:
export MONGO_URL=mongodb://client-5345a08c:5f63edff-8cec-a818-7f35-c05021bb6d91#production-db-d1.meteor.io:27017/34377_ru
The inconvinience is that this url is invalid in one minute, so I need to generate another one and modify my MONGO_URL every time I want to start my application. I suspect some permanent url to my MongoDB is out there. I ran meteor mongo myapp.meteor.com and noticed greeting:
MongoDB shell version: 2.4.9
connecting to: production-db-d1.meteor.io:27017/34377_ru
I tried to use this url:
export MONGO_URL=mongodb://production-db-d1.meteor.io:27017/34377_ru
and even
export MONGO_URL=mongodb://myneteorcomusername:mymeteorcompassproduction-db-d1.meteor.io:27017/34377_ru
but I had no luck.
Are there ways to simplify my workflow and make meteor use my remote database by default?
I guess for scaling purposes, there is no dedicated mongo ever for each subdomain. I could be wrong so better ask this question over at the Meteor Talk Google group.
on meteor i've just added a new feature to download some image in public/img/aSpecificFolder.
It works locally, but i've seen that each time i deploy on meteor.com using deploy command, it looks like that public folder is completely erased. Or maybe that the deploy remove the current app and install a new one. So it only keept the connection to db but all files are removed and put again.
What is the good way of doing if i want to store image on meteor.com ?
thanks
Have you considered using something like collections-fs. When you deploy on meteor it will clear your previous app and use the new one.
If you use something like collections-fs it lets you store your files in the mongo database instead, so they're not actually on the same server that serves out data.
This is also good in another way (scaling) since each virtual environment that hosts your app is able to access the files. If you store the files statically they will only be accessible on one of the servers.
For the moment meteor hosting (via meteor deploy) uses one server, but its likely it will be scalabale in future.
I have tested Cordova as a way to embed a HTML5/JavaScript application into an IOS application without a remote server.
I would like to embed Meteor instead: for my learning, for the reactivity, and so that later I can add a server-side for storing data.
What are the key steps to do this? I would need to use LocalStorage instead of in-memory storage of minimongo. Are there also steps to embed Meteor? Would I also need Cordova to provide a functional environment for Meteor? Are there steps to tell Meteor there is no server?
At the moment its not possible to persist storage with local meteor collections. You can create collections without specifying the collection name e.g
var MyCollection = new Meteor.Collection(); //(instead of Meteor.Collection("MyCollection");
The issue is as soon as you close the application the data will be cleared. So this makes it very difficult to make your app offline only.
There is also a package being worked on to help allow offline collections while a server is not available: https://github.com/awwx/meteor-offline-data#readme
You can still use meteor with cordova and phonegap though, but you will need a data connection. To bundle your cordova application there is a very helpful script: https://github.com/guaka/meteor-phonegap
I have created an application using cordova, meteor and packmeteor.
For me it works pretty nicely.
I wrote a block post on how you can get started with it here.
For the local persistence of data I used GroundDB.