Movendo seu aplicativo Heroku com MongoLabs para outra região

Então, você fez todos esses aplicativos incríveis e os implantou no Heroku. Em toda a grandiosidade e facilidade de uso do Herokus, você se esqueceu de especificar a região do Heroku em que seu aplicativo deveria residir. Ou seu aplicativo é antigo e foi feito antes de o Heroku abrir sua região europeia. A diferença de latência entre as regiões pode ser bastante grande, então você deve mover seu aplicativo para a região mais próxima de seus usuários. Esta postagem explica o processo de mover seu aplicativo para a Europa (ou qualquer outra região).

Na verdade, o Heroku não oferece suporte à movimentação de aplicativos – o truque é criar uma bifurcação do aplicativo, uma duplicata se preferir, e então especificar a região correta na criação. O comando é o seguinte:

heroku fork -a sourceapp targetapp --region eu

Esta é a parte fácil. Heroku agora criou um aplicativo duplicado e configurou-o em um apartamento novo e bonito na região especificada. O problema é que todos os dados do MongoLabs foram deixados em suas caixas de papelão no antigo apartamento. A solução é usar as ferramentas mongodb mongodump e mongorestore para primeiro despejar o conteúdo do banco de dados no disco como arquivos .json e .bson e, em seguida, restaurá-los no novo banco de dados.

Primeiro, precisamos anexar o complemento MongoLab ao seu novo aplicativo:

heroku addons:add mongolab

Em seguida, despejamos o conteúdo do banco de dados associado ao seu aplicativo antigo para o drive usando o seguinte comando:

mongodump -h <mongoDB-address>:<port> -d <app-name> -u <user> -p <password> -o <output directory>

Deve ser parecido com isto:

mongodump -h ds057528.mongolab.com:57528 -d heroku_app20500089 -u myuser -p mypassword -o mongolab-backup

A etapa final do processo inclui carregar a nova instância do MongoLab associada ao seu aplicativo recém-criado com estes dados:

mongorestore -h <mongoDB-address>:<port> -d <app-name> -u <user> -p <password> <input db directory>

Isso pode ser parecido com isto:

mongorestore -h ds057528.mongolab.com:57528 -d heroku_app20500089 -u myuser -p mypassword mongolab-backup

Voila!

Aproveite seu novo aplicativo.