Migrações de banco de dados

Olá a todos!

Tenho estudo Go a um certo tempo e o que noto é que muitos desenvolvedores preferem utilizar SQL puro ao invés de um ORM. Em grande parte dos cursos que fiz, os professores criaram as tabelas diretamente dentro do banco de dados.

Mas a longo prazo, como vocês lidam com isso? Digo, como controlam as versões das alterações no banco?

Mesmo usando as migrações do GORM parece não haver um histórico de logs do tipo “campo x adicionado na tabela y em dd/mm/aaaa”.

O que tenho feito é criar uma pasta com vários arquivos .sql nomeando de acordo com a ordem de criação e conteúdo da alteração.

Existe algum padrão que o mercado adota pra isso ou ainda não há um consenso geral?

4 Likes

Tenho utilizado o GORM como ORM, acredito que seja bastante comum, e como o @wiliamvj citou, também uso o golang-migrate para controlar as migrations. O que faco para as migrations é controlar elas na mão mesmo. Criando arquivos .sql e com a ajuda da golang-migrate consigo controlar os schemas a cada execucao do projeto.

1 Like