2011-11-26 69 views

回答

8

您可以登录到heroku并点击addons => mongohq来迁移MongoHQ。在应用程序中,使用简单密码在名为“backup”的数据库用户下创建一个新用户。下面,我的密码是“temppw”。然后单击您的连接信息的数据库信息选项卡(主机:端口[flame.mongohq.com:27049]和dbname [appXXXXXX])。然后调用mongodump来获得备份。

mongodump -h flame.mongohq.com:27049 -d appXXXXXX -u backup -p temppw 

这将创建一个名为“dump”的本地目录,其中包含您的数据。通过将它加载到本地数据库(只运行mongorestore并查看本地mongo安装)来验证它是否存在 - 因为当你销毁你的旧应用程序时,它会破坏MongoDB(heroku也会破坏你的postgres数据库 - 所以你应该这样做也是如此)。

无论如何,除了使用mongorestore之外,对您的新应用程序数据库执行上述操作。

mongorestore -h flame.mongohq.com:27049 -d appXXXXXX -u backup -p temppw dump/appXXXXXX 

不只是POINT环境URLS。这很危险,因为删除您的初始应用程序将会破坏您的所有数据。

+0

好的,谢谢你的建议。 – WHITECOLOR

+0

MongoHQ已更名为Compose FWIW。 – staypuftman

1

我不确定MongoHQ,但对于PostgreSQL,您可以使用Heroku Taps将数据从远程数据库提取到本地计算机。然后你可以将它推送到新的应用程序。

或者你可以改变你的新雪松应用程序指向数据库的变量DATABASE_URL正在使用的旧的应用程序环境 - 你不使用共享数据库假设。

最后一种方法也适用于MongoHq。

+0

谢谢,实际上我对mondodb迁移更感兴趣。我还没有尝试在新的应用上更改MONGOHQ_URL,但我想也许有一些标准的解决方案。 – WHITECOLOR

+1

也许这可以帮助:http://support.mongohq.com/customer/portal/articles/100129-migrate-local-db-to-mongohq – leonardoborges