Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente

Existem coisas que, de tão simples, são geniais. Essa ideia chegou até mim através do comentário de colega, um herói que não usa capa. Não é nada revolucionário, mas é algo que me deixou com a sensação de “por que eu nunca fiz isso antes?”.

⚠️ ATENÇÃ…


This content originally appeared on DEV Community and was authored by Jony Hayama

Existem coisas que, de tão simples, são geniais. Essa ideia chegou até mim através do comentário de colega, um herói que não usa capa. Não é nada revolucionário, mas é algo que me deixou com a sensação de "por que eu nunca fiz isso antes?".

⚠️ ATENÇÃO: Isso que vou compartilhar é um hackzinho, um "recurso técnico", no português claro: uma gambiarra. E - como toda gambiarra - precisa ter cuidado na hora de usar.

Disclaimer feito, bora lá.

Em anos de desenvolvimento, eu sempre me condicionei a pensar "vou copiar o banco de staging para ter uma massa de dados". Muitos desenvolvedores utilizam Seeds para esse propósito e fazem um ótimo trabalho com isso.

Sempre que surge um bug, meu mindset é: vamos descobrir como replicar isso em staging, para poder copiar o banco e investigar localmente.

Nenhum problema até que você tenha um banco enorme. Daqueles que você precisa ir fazer outra coisa enquanto está baixando e restaurando. É um tempo em que você pode dar uma olhada no backlog, ou talvez dar uma olhada nos PRs dos colegas, ou simplesmente ir tomar café... Mas convenhamos, seria mais produtivo já poder codar.

Bom, eis que eu estava copiando um banco monstruoso e comentei com o meu colega...

Eu: putz, tô baixando o banco, parece que vai demorar... 😩
Colega: porque você não conecta direto em staging?
Eu: como assim? 🤔
Colega: se o banco é enorme e você não vai editar nada, conecta direto em staging
Eu: como faço isso?
Colega:

DATABASE_URL=`heroku config:get DATABASE_URL -a your-app` rails s

Eu:
chocado

Simples assim, posso adicionar um byebug onde eu quiser para investigar o problema 🥳!

Se você também usa o Heroku, tenho certeza que já tropeçou no comando heroku config em algum momento para trabalhar com variáveis de ambiente. Eu mesmo já mencionei ele no primeiro artigo que escrevi no dev.to.

Eu já até cheguei a usar, para copiar uma ENV que estava em staging para o meu .env.local. Já até vi ele jogado em um makefile em um script que já não lembro mais o que fazia...

Mas confesso que essa ideia nunca tinha me passado pela cabeça 🤦‍♂️

O mais interessante é que não precisamos nos limitar ao rails s...

DATABASE_URL=`heroku config:get DATABASE_URL -a your-app` rails c

E nem sequer ao Rails:

psql -d `heroku config:get DATABASE_URL -a your-app`

Agora, se você, assim como eu, é bastante preguiçoso, pode criar aliases e funções no seu ~/.zshrc:

alias stgdburl="heroku config:get DATABASE_URL -a your-app"

function stgdb() {
  export DATABASE_URL=`stgdburl`
  "$@"
}

🧙 Magicamente os comandos passam a ser:

stgdb rails s
stgdb rails c
psql -d stgdburl

⚠️ ATENÇÃO: Antes de sair correndo e fuçando tudo isso, convém dar uma olhadinha no seu config/database.yml e dar uma lida na documentação do rails.
É importante saber como está a sua configuração para saber como a aplicação irá se comportar com a presença do DATABASE_URL.

Com grandes poderes vêm grandes responsabilidades

Como você já deve ter percebido, da para conectar em qualquer banco, inclusive prod.

Então, cuidado 😜


This content originally appeared on DEV Community and was authored by Jony Hayama


Print Share Comment Cite Upload Translate Updates
APA

Jony Hayama | Sciencx (2022-07-11T18:41:46+00:00) Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente. Retrieved from https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/

MLA
" » Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente." Jony Hayama | Sciencx - Monday July 11, 2022, https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/
HARVARD
Jony Hayama | Sciencx Monday July 11, 2022 » Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente., viewed ,<https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/>
VANCOUVER
Jony Hayama | Sciencx - » Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/
CHICAGO
" » Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente." Jony Hayama | Sciencx - Accessed . https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/
IEEE
" » Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente." Jony Hayama | Sciencx [Online]. Available: https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/. [Accessed: ]
rf:citation
» Mini-hack para acessar seu Banco de Dados (Postgres) do Heroku com Rails localmente | Jony Hayama | Sciencx | https://www.scien.cx/2022/07/11/mini-hack-para-acessar-seu-banco-de-dados-postgres-do-heroku-com-rails-localmente/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.