我在 heroku 上有一个应用程序,然后我决定创建另一个应用程序(在不支持 stack:migrate 的 cedar 堆栈上)。
如何迁移数据库 PG 和 MongoHq?
谢谢!
您可以通过登录 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
不要只指向环境 URL。这很危险,因为删除您的初始应用程序会破坏您的所有数据。
我不确定 MongoHQ 但对于 PostgreSQL,您可以使用Heroku Taps将数据从远程数据库提取到本地计算机。然后,您可以将其推送到新应用程序。
或者,您可以更改新 Cedar 应用程序的环境变量DATABASE_URL
以指向旧应用程序正在使用的数据库 -假设您没有使用共享数据库。
最后一种方法也适用于 MongoHq。