DEV Community

Cover image for Como clonar um app no Heroku
Jony Hayama
Jony Hayama

Posted on • Originally published at Medium

3 1

Como clonar um app no Heroku

Originalmente postado no Medium

Hoje fui confrontado com uma task super simples: Criar 3 ambientes de staging para que nossos QAs trabalharem e assim evitar que fiquem “trombando” uns nos outros. O nosso cenário até o momento era, 1 ambiente por projeto e 2 profissionais para fazer os testes.

Nosso problema surgiu quando decidimos fazer uma força-tarefa e agilizar as entregas para um cliente em específico. Todo o time será realocado para o mesmo projeto. Aliado a isso, um novo QA foi contratado para compor a equipe.

Agora ficamos: 1 projeto, 3 QAs e apenas 1 ambiente para que façam seus testes.

Com apenas um ambiente, é natural que não consigam testar coisas diferentes em paralelo. Nossa ideia foi bastante simples: Criar um ambiente de staging para cada um e compartilho como fizemos:

A ideia é copiar o app my-staging para my-new-staging. Estou partindo do pressuposto que o Heroku Cli já está instalado e operando.

Repositório

Aqui trabalhamos com o Automatic Deploy, vinculado a uma branch específica do GitHub (carinhosamente chamada de stg/star-wars).

Esse processo é bastante simples:

git checkout master
git pull
git checkout -b stg/star-wars
git push -u origin HEAD
Enter fullscreen mode Exit fullscreen mode

Depois crie a nova aplicação no Heroku e na seção “Deploy” conecte seu GitHub e escolha a branch conforme o print abaixo:

Heroku Config

Copiando as variáveis de ambiente

Primeiro copiamos as variáveis para um txt qualquer:

heroku config -s -a my-staging > heroku-env.txt
Enter fullscreen mode Exit fullscreen mode

Depois é necessário enviá-las para a nova aplicação. Antes disso, é importante revisar as variáveis que, de fato, precisam ir. De cara, precisamos remover DATABASE_URL, já que o banco de dados será outro.

cat heroku-env.txt | tr '\n' ' ' | xargs heroku config:set -a my-new-staging
Enter fullscreen mode Exit fullscreen mode

Copiando o banco de dados (PostgreSQL)

Primeiramente precisamos gerar o backup na app de origem:

heroku pg:backups:capture -a my-staging
Enter fullscreen mode Exit fullscreen mode

Esse comando terá uma resposta parecida com o print abaixo:

Heroku DB Response

O importante aqui é a referência b079, que utilizaremos no próximo comando:

heroku pg:backups:restore my-staging::b079 --app my-new-staging
Enter fullscreen mode Exit fullscreen mode

Repeti esse processo mais duas vezes e voilà card movido para “done” 😃

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post