将本地mongo集合部署到meteor.com服务器

时间:2014-06-16 09:32:31

标签: mongodb collections meteor

我正在使用MongoDB开始我的第一个流星应用程序。

我已将数据从JSON文件复制到mongodb集合中,当在本地托管时,数据按预期显示;该集合位于meteor mongo数据库中,我可以随意解释

当我将应用程序部署到xx.meteor.com时,我需要的流星集合(名为' assets')不会发布到服务器上的mongodb。我可以使用meteor mongo onemore.meteor.com来检查这一点。其他收藏品已张贴。

如何使用meteor deploy部署我的mongoDB集合(' assets')和应用程序?

这个问题是由于蒙古数据库的原始导入方式吗?我使用了这种方法:https://github.com/awatson1978/meteor-cookbook/blob/master/cookbook/database-management.md

我使用db.copyDatabase('staging3','meteor','localhost')

从登台数据库复制了集合('资产)

2 个答案:

答案 0 :(得分:6)

使用mongodump和mongorestore也可以:

  1. 转储现有mongodb中的数据(mongodb url:mongodb:// USER:PASSWORD @ DBHOST / DBNAME)

    mongodump -h DBHOST -d DBNAME -u USER -p PASSWORD
    

    这将创建一个"转储"目录,所有数据都将转储到/ DBNAME。

  2. 获取部署的流星应用程序的mongodb网址(即www.mymeteorapp.com)

    meteor mongo --url METEOR_APP_URL
    

    这将返回以下内容:

    mongodb://#USERNAME#:#PASSWORD#@#HOSTNAMEANDPORT#/#YOURAPPLICATION#
    

    注意:密码每分钟到期。

  3. 将db转储数据上传到meteor应用程序(使用示例meteor db url)

    mongorestore -u #USERNAME# -p #PASSWORD# -h #HOSTNAMEANDPORT# -d www_mymeteorapp_com dump/DBNAME/
    

    所有数据都应该转移!

  4. 这个答案基本上是Davidd8's answer here的修改版本,但由于这个从未被接受过,我在这里重新发布。

答案 1 :(得分:2)

以上都不适合我。以下是我的诀窍:

1)如何获取我的meteor db的localhost转储? 提示1:确保mongo正在运行(键入mongod来运行它) 我的流星在哪个端口上运行?     $ mongodump --host localhost:3002(不是)     $ mongodump --host localhost:3000(nope)     $ mongodump --host localhost:3001(是的!)这个工作

现在哎呀它放了我的转储?     $ ls(显示转储在我当前的目录中,meteor在转储目录中)

我需要以某种方式将流星数据放到我在meteor.com上的实际网站上

现在接下来的问题是,meteor.com会向我提供我需要的信息,但我们只有1分钟才会有信息到期。

此信息是我连接到远程流星站点并导入本地流星数据所需的信息。

我在终端输入:     $ meteor mongo --url iamcool.meteor.com

然后它吐出这样的东西:

mongodb://client-11f3014w:f1c52f68-8506-b682-c880-b5db03a9510e@production-db-a2.meteor.io:27017/iamcool_meteor_com

我使用上面的信息告诉我从上面的代码中提取哪些数据以及将它放在mongorestore代码中的位置

mongorestore -u #USERNAME# -p #PASSWORD# -h #HOSTNAMEANDPORT# -db www_mymeteorapp_com dump/DBNAME/

这是你必须成为一个超级快速的东西。我建议在IDE中打开一个空白文件(Sublime Text或Atom或任何你使用的)并创建这个模板:

mongorestore -u XXX -p XXX -h production-db-a2.meteor.io:27017 -db iamcool_meteor_com dump/meteor

所以我接受了meteor.com给我的数据,我将其插入下面:

mongorestore -u client-4bf9be36 -p d1cdef86-6c71-3b11-ef4c-221fbdcf07d0 -h production-db-a2.meteor.io:27017 -db iamcool_meteor_com dump/meteor

然后错误来了。他们来了男孩。

有时我收到此错误: 太多的位置参数

有时我收到此错误: 失败:连接到数据库服务器时出错:验证失败

但是这个错误提示给了我保存当天的信息:     尝试'mongorestore --help'获取更多信息

我做了,我发现传递给数据库的标志不是-db而是-d

我做了以下更改,并使用我的可靠模板快速输入(见上文)

mongorestore -u client-4bf9be36 -p d1cdef86-6c71-3b11-ef4c-221fbdcf07d0 -h production-db-a2.meteor.io:27017 -d iamcool_meteor_com dump / meteor

然后它奏效了。

我花了两个小时才弄明白。希望它能为你节省时间。