我多次浏览这个标题,试图找到一个最新的解决方案,将我的本地 Meteor Mongo db 部署到 Heroku。所以我在这里为任何做同样事情的人发布这个答案,尽管问题实际上是关于设置 MONGO_URL。
这是一个更新的解决方案(Meteor 1.3.2.4),用于使用(免费)mLabs 将本地 Meteor Mongo 数据库推送到 Heroku。我的应用程序没有使用陨石,它使用了“马”构建包。
1. 转储本地 mongo db
在您的应用程序文件夹中的终端(不是 mongo shell)中,
mongodump --port=3001 -o ../dump
2. 将 db 文件从“dump/your-db-name”移到“dump”
在我的本地流星实例中,/dump 文件夹放置在我的应用程序上方的文件夹中,因此“转储”与我的应用程序文件夹位于同一目录中。“dump”包含一个以我的数据库命名的文件夹(“dump/my-database-name/”)。这会导致下一个脚本失败,并出现 mongorestore 错误“不知道如何处理 'my-database-name'”。为防止出现错误,请将文件夹“my-database-name”中的所有文件向上移动到“dump”,然后删除“my-database-name”文件夹。
默认情况下,您的数据库名称是“meteor”,因此如果您没有更改它,请查找“dump/meteor/”。
3. 在 mLabs 中,如果您还没有这样做,请创建一个具有管理员权限的用户。对我来说,设置时分配的默认用户不起作用。
4. 将转储的数据库推送到 Heroku 应用程序的 mLabs。这假设您在 Heroku 应用程序中添加了 mLabs 插件,并在 Heroku 应用程序配置中设置了“MONGO_URL”。如果这些都没有完成,就必须先完成。
在终端(不是 mongo shell)中,从您的应用程序目录更改为包含“转储”目录的目录。就我而言,它只是“cd ../”。
转到 Heroku 应用程序的 mLabs 插件,然后单击“工具”选项卡,获取默认的“导入”脚本。这个脚本对我不起作用,但它可能对你有用。如果不是,请粘贴此脚本,用您的变量替换括号中的变量(也替换括号)。
mongorestore -h [your mLabs value] -d [your mLabs default user name] -u [your mLabs created user name] -p [your mLabs created user's password]
脚本运行后,您应该能够刷新您的 mLabs“集合”选项卡并查看您推送的数据。
祝你好运:) 我希望这对某人有帮助!