如何为部署到 Heroku 的节点+mongo 应用播种数据?
How to seed data for a node+mongo app deployed to Heroku?
我有一个以 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
如果您 运行 heroku config -a yourapp
您将看到您的 mongolab 实例的连接字符串。然后,您可以通过您在本地使用的相同 mongo
客户端连接到该数据库,运行 使用相同的 seed.js
.
这里是完整的答案,如何使用 mongo 命令为部署到 Heroku 的应用程序 运行 一个 seed.js 文件,感谢 pneumee 和 hunterloftis:
- 通过 运行ning
$ heroku config
在您的应用程序目录中获取您的 MONGOLAB_URI
MONGOLAB_URI 变量的格式为 mongodb://user:pass@host:port/db
。
使用这些不同的部分将正确的终端命令粘在一起 运行 seed.js 文件:
$ mongo host:port/db -u user -p pass yourSeedFile.js
我有一个以 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
如果您 运行 heroku config -a yourapp
您将看到您的 mongolab 实例的连接字符串。然后,您可以通过您在本地使用的相同 mongo
客户端连接到该数据库,运行 使用相同的 seed.js
.
这里是完整的答案,如何使用 mongo 命令为部署到 Heroku 的应用程序 运行 一个 seed.js 文件,感谢 pneumee 和 hunterloftis:
- 通过 运行ning
$ heroku config
在您的应用程序目录中获取您的 MONGOLAB_URI MONGOLAB_URI 变量的格式为
mongodb://user:pass@host:port/db
。 使用这些不同的部分将正确的终端命令粘在一起 运行 seed.js 文件:$ mongo host:port/db -u user -p pass yourSeedFile.js