Executando verificação de segurança...
6

Pitch: Como gerenciar a estrutura de um banco de dados, utilizando migrations, sem um ORM?

Já pensou em criar um projeto que utilize um banco de dados, mas não gostaria de usar um ORM? Gosta de usar SQL puro em seus projetos, e ter total controle das queries? Busca uma forma de reduzir custos com pipelines?

Ao decidir quais tecnologias utilizar em nossos projetos, a interação com o banco de dados pode ser um fator decisivo. Alguns frameworks podem ser mais ou menos otimizados e podem ou não ter os recursos que precisamos. Independentemente do ORM que escolhemos, o SQL está por trás dos panos. Portanto, pode ser mais vantajoso utilizar SQL puro em vez de ficar vinculado a tecnologias específicas. Se você usar, por exemplo, o ORM do Rails, precisará aprender o do Django se mudar. Seria melhor se pudesse aproveitar 100% do seu conhecimento entre as tecnologias por meio do SQL.

ORMs em geral também não geram queries tão otimizadas quanto poderiam se fossem criadas manualmente. Além disso, há coisas que podem ser feitas com SQL puro que são complicadas com ORMs. Eles geralmente são escritos em linguagens mais lentas, como Python, Ruby, PHP, o que aumenta o tempo de execução nas migrations, pois precisam instalar muitas dependências, tornando a execução mais lenta. Isso aumenta significativamente os custos de execução de migrations dentro de pipelines.

No entanto, usar SQL puro é um desafio quando se trata de migrações para estruturar tabelas, pois essas migrations geralmente estão inseridas dentro desses frameworks. Agora temos uma solução para esses problemas: o Migrator, uma ferramenta para gerenciar migrações de banco de dados feita em Golang, tornando-a extremamente rápida. Sua curva de aprendizado é suave, reforçando seu controle e conhecimento em SQL.

O Migrator é rápido, leve, otimizado para containers e está em constante evolução. Permite que a estrutura do banco de dados seja gerenciada independentemente da linguagem ou framework utilizado.

Acesse o repositório do Migrator para saber como utilizá-lo.

Exemplo de implementação:

Você pode acompanhar o projeto e futuras implementações na seção de gerenciamento de projetos dele.

Carregando publicação patrocinada...
3

Bom dia, gostei da iniciativa. Eu gostei muito das opcoes de linha de commando do migrator.

Voce conhece as ferramentas Flyway e o Liquibase?

Na sua opiniao, qual o diferencial do migrator quando comparado ao Flyway e o Liquibase?

abrs

1

Boa noite!

Ambas são ferramentas muito poderosas, mas o foco do Migrator é ser mais simples e está caminhando para ser o mais automatizado possível. O fato do Flyway e Liquidbase serem feitos em Java, faz com que os containers e ambientes de execução sejam mais complexos e pesados. Enquanto o migrator é apenas um binário, o que deixa ele mais portátil e simples de manipular e executar.

O caminho que o Migrator segue também é diferente, ele tem uma inspiração no modelo do Rails, futuramente será muito mais parecido. O que traz muito mais automação.

2
2
1

Ah sim, sem dúvidas.
Mas citei o phinx mesmo como alternativa para quem já tem uma pipeline em PHP rodando certinha e quer adicionar esse ponto.