Vamos falar sobre migrations
Fala pessoal, estou trabalhando num projeto pessoal avaliando algumas formas de migration que tenham um suporte pra longo prazo e sejam um pouco mais automatizada (Não sei realmente por que isso faz tanta diferença pra mim, mas me interessei pelo assunto). Queria saber como voces constumam fazer na linguagem preferida (ou a do trabalho mesmo) de voces.
Eu uso a migration do Laravel e, basicamente, é ótimo. Atende a necessidade, não tenho do que reclamar. Com os comandos do Artisan no terminal, automatizo a criação, migração, rollback, refresh e tudo mais.
As migrations são nomeadas com data e hora da criação + nome genérico criado automaticamente ou customizado por mim.
Ex.: 2024_07_15_000006_create_users_table.php ou até 2024_11_01_124042_create_optional_vehicle_pivot_table.php
Comandos: migrate:fresh Drop all tables and re-run all migrations migrate:install Create the migration repository migrate:refresh Reset and re-run all migrations migrate:reset Rollback all database migrations migrate:rollback Rollback the last database migration migrate:status Show the status of each migration
Infelizmente não consigo te ajudar muito com isso, no meu trabalho usamos a migration do EF Core no .NET C#, e assim ele é bom, mas não sei se é problema com o nosso projeto, mas é ridículo quando faço o update da migration ela no pico consume 19gb de RAM macho claro que tem mais 1000 migrations, e além disso os arquivos gerados pela migration são gigantescos!!!
Pra ser sinsero não entendo muito como funciona a arquitetura de uma ferramenta de migration, mas estou construindo um PDV para um cliente, e como é um sistema local simples eu construí um código besta em C# que faz a migration em tempo de execução, infelizmente é de código fechado e não posso te passar o repositório, mas posso mostrar um exemplo.
Fica assim no banco de dados.
Em tempo de execução verifico se um dos métodos existe na tabela (se não executo), obviamente ele não é tão seguro quanto uma ferramenta de migration real, mas resolve o meu problema simples e sem precisar de uma camada pesada em um app de aproximadamente 30mb.
Caso queira acompanhar um projeto legal, pode acompanhar o Dicionário do bebê.
Eu nao sei pôr quê, mas sempre achei trabalho adicional usar. Talvez por que nao tenho costume.
Olá amigo!
eu meus projetos python eu utilizo o alembic ajuda muito nas fases iniciais onde geralmente precisamos mudar as coisas com mais frequência.