我最近将 Meteor 应用程序部署到了运行 Ubuntu 14.04 x32 的 Digital Ocean droplet。我在这个文件中使用了 Meteor Up :mup.json
{
// Server authentication info
"servers": [
{
"host": "mycorrecthostname",
"username": "root",
"password": "mycorrectpassword"
}
],
// Install MongoDB in the server, does not destroy local MongoDB on future setup
"setupMongo": true,
// WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
"setupNode": true,
// WARNING: If nodeVersion omitted will setup 0.10.25 by default. Do not use v, only version number.
"nodeVersion": "0.10.28",
// Install PhantomJS in the server
"setupPhantom": true,
// Application name (No spaces)
"appName": "meteor",
// Location of app (local directory)
"app": "/my/correct/path/to/app",
// Configure environment
"env": {
"ROOT_URL": "http://mycorrecturl.com"
},
// Meteor Up checks if the app comes online just after the deployment
// before mup checks that, it will wait for no. of seconds configured below
"deployCheckWaitTime": 15
}
一切都很好。我已经测试了该网站,一切正常。我还ssh
用服务器设置了我的密钥,并且可以ssh
在没有密码的情况下使用它。
但现在,我需要远程访问我的服务器数据库。shelf
我在 python文件中有一些本地数据,我需要使用这些本地数据来播种我的数据库。我了解如何使用 连接到远程数据库pymongo
,但我正在尝试使用 获取连接 URI,meteor mongo --url http://mycorrecturl.com/
它只返回此错误:
Couldn't open a mongo connection: Site does not exist
什么??这里出了什么问题?我希望它要求身份验证,但不存在?官方一头雾水。
提前感谢您的帮助!
更新
我一直在我的服务器目录中寻找,试图在meteor mongo
那里成功运行,但尽管我已经安装了流星curl https://install.meteor.com | /bin/sh
,但它总是说我不在流星项目目录中。甚至隐藏.meteor
目录显然也不是项目目录。
更新
我更仔细地查看了 Meteor Up 文档,它说:
您无法从服务器外部访问 MongoDB。要访问 MongoDB shell,您需要先通过 SSH 登录到您的服务器,然后运行以下命令。
mongo appName
我试过了,它有效,但这还不够好。我需要能够远程访问数据库。Meteor Up 部署是不可能的吗?
下面的答案之一似乎表明通过MONGO_URL
在我的env
对象中设置,我基本上将手动告诉数据库要响应的 url。那准确吗?
更新
Meteor Up 文档说以下内容:
<appName> 是数据库的名称
因此,根据其中一个答案的建议,我编辑了我的内容mup.json
以包含以下内容:
// Configure environment
"env": {
"ROOT_URL": "http://localhost/",
"MONGO_URL": "mongodb://root:mypassword@127.0.0.1:27017/meteor"
// My appName is "meteor", so that is the name of the database as well.
}
当我mup deploy
使用这些变量执行时,部署失败。这是错误的第一部分(如果您想查看其余部分,请告诉我):
/usr/lib/node_modules/wait-for-mongo/bin/wait-for-mongo:14
throw err;
当我使用mup reconfigure
时,它并没有失败,但是在它的 url 上根本找不到该网站。在我看来,这MONGO_URL
不是一种控制机制,而仅仅是一个指向外部数据库(如 mongohq)的指针。
我想我别无选择,只能求助于mongo appName
约定和 ssh python 库,但我很想找到一种方法来远程直接访问我的数据库并继续使用 Meteor Up。