我使用随 Meteor 安装的默认 Mongo 数据库在本地开发 Meteor 环境中设置应用程序数据。我的应用程序已准备好在 Heroku 上部署,但我打算将我的数据与其一起使用(类似于 Rails“迁移”)。
在 Heroku 中,我添加了 mLabs 插件并设置了“MONGO_URL”变量。如何将本地应用程序数据库推送到 mLabs 实例以在 Heroku 上进行部署?
最佳答案
这对我有用。
<强>1。转储我的本地 mongo 数据库
在应用程序文件夹中的终端(不是 mongo shell)中,
mongodump --port=3001 -o ../dump
<强>2。将数据库文件从“dump/my-db-name”文件夹移至“dump”
在我的本地 meteor 实例中,“dump”文件夹放置在我的应用程序上方的文件夹中,因此“dump”与我的应用程序文件夹位于同一目录中。 “dump”包含一个以我的数据库命名的文件夹(“dump/my-database-name/”)。这导致下一个脚本失败,并出现 mongorestore 错误“不知道如何处理‘我的数据库名称’”。为了防止出现错误,我将“my-database-name”文件夹中的所有文件移至“dump”中,然后删除了“my-database-name”文件夹。
默认情况下, meteor 应用程序使用数据库名称“meteor”创建,因此对于浏览此问题但未更改数据库名称的人来说,它将是“dump/meteor/”。
<强>4。将转储的数据库推送到 Heroku 应用程序的 mLabs 实例。 我已经在我的 Heroku 应用程序中添加了 mLabs 插件,并在我的 Heroku 应用程序配置中设置了“MONGO_URL”。如果这些还没有完成,则必须先完成它们。
在终端(不是 mongo shell)中,从应用程序的目录更改为保存“转储”目录的目录。
转到 mLabs 插件,然后单击“工具”选项卡,获取 Heroku 应用程序的 mLabs 实例的默认“导入”脚本。此处提供的脚本对我不起作用,但可能对其他人有用,并且它确实提供了我在下面修改的脚本中使用的变量。
<强>3。如果 mLabs 工具中提供的“导入”脚本不起作用...
在 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“集合”选项卡并查看推送的数据。
祝你好运:)我希望这对某人有帮助!
关于mongodb - 如何将本地默认 Meteor Mongo 数据库的数据推送到 Heroku mLabs 以供部署在 Heroku 上的应用程序使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37905111/