node.js - 如何为部署到 Heroku 的 Node +mongo 应用程序播种数据?

标签 node.js mongodb heroku mlab seeding

我有一个以 MongoDB 作为数据库的 node express 应用程序。我想要一个 seed.js 文件,我可以运行它来将初始数据填充到数据库中。我在本地机器上执行此操作没有问题。我只是在我的 seed.js 文件中编写 mongo 命令并运行它:

$ mongo localhost:27017/myApp seed.js

但是,当我将我的应用程序部署到 Heroku(包括 MongoLab)时,我不确定如何在那里播种数据。大多数时候,Google 都会引导我使用 Rails。

那么,是否有一种无需编写脚本即可为 Heroku MongoLab 播种数据的简单方法?

更新: 如果我尝试使用来自 heroku 的 MONGOLAB_URI 运行它,我会收到错误消息。

$ mongo mongodb://heroku_xxxx:xxxxx.mongolab.com:xxx/heroku_xxxx seed.js 

MongoDB shell version: 3.0.5
connecting to: mongodb://heroku_xxxxxxxx
2015-08-19T21:44:22.694+0100 E QUERY    Error: More than one ':' detected. If this is an ipv6 address, it needs to be surrounded by '[' and ']'; heroku_xxxxxxxxxxxxx
    at connect (src/mongo/shell/mongo.js:181:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed

最佳答案

这里是如何使用 mongo 命令为部署到 Heroku 的应用程序运行 seed.js 文件的完整答案,感谢 pneumee 和 hunterloftis:

  1. 通过在您的应用程序目录中运行 $ heroku config 获取您的 MONGOLAB_URI
  2. MONGOLAB_URI 变量的格式为 mongodb://user:pass@host:port/db。 使用这些不同的部分将正确的终端命令组合在一起以运行 seed.js 文件:

    $ mongo host:port/db -u user -p pass yourSeedFile.js
    

关于node.js - 如何为部署到 Heroku 的 Node +mongo 应用程序播种数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103222/

相关文章:

node.js - 在其他路线之前提供 Assets

mongodb - Mongodb文档深度更新

javascript - Node.js 提供 HTML,但无法在提供的页面中加载脚本文件

mongodb - MongoDB 是基于磁盘的吗?

python - 找不到该进程类型,Heroku

javascript - 无法在 node.js 中代理 PDF 文件

node.js - Nodejs用户系统认证

node.js - 如何在 sails.js 0.12 cors.js 文件中添加多个源

php - Heroku 上托管的 SQLite 数据库自动重置

docker - 从现有的 docker 镜像部署 Heroku