
Em frameworks PHP modernos, como Symfony e Laravel, as migrações geralmente possuem métodos up e down . No método up de definição de migração, você teve que escrever um código que é chamado apenas ao executar a migração para frente e para down - o código que é chamado apenas ao reverter a migração. É prática padrão tornar as migrações de banco de dados irreversíveis. As migrações devem ser compatíveis com versões anteriores e apenas avançar.
No Laravel, um método down ausente ou vazio não impede a migração de reversão na execução do comando CLI php artisan migrate:rollback . O estado do banco de dados não mudará, mas a migração será removida do registro de migrações aplicadas, e a próxima execução do php artisan migrate chamará o método up novamente. Para evitar esse comportamento, todas as migrações devem ter o método down que lançará uma exceção, nada mais.
php db migration validator verifica se todos os arquivos de migração atendem a este requisito. Você pode adicioná-lo aos ganchos git do servidor para evitar a reversão da migração ou adicionar uma etapa de validação ao CI.
Puxe o pacote através do Composer.
php composer require antonkomarev/php-db-migration-validatorValidar arquivo
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/file.phpValide muitos arquivos
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/file.php migrations/file2.phpValide muitos arquivos por curinga
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/2022_ *Validar arquivos no diretório
php vendor/bin/php-db-migration-validator --rule=irreversible migrations/Valide arquivos em vários diretórios
php vendor/bin/php-db-migration-validator --rule=irreversible app/migrations/ vendor/migrations/Automatizar a validação de todas as contribuições para o repositório como parte da Integração Contínua é uma das formas possíveis de utilização desta ferramenta.
Crie o arquivo .github/workflows/db-migration-validation.yaml no repositório do aplicativo.
name : DB Migration Validation
on :
push :
jobs :
db-migration-validation :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- uses : shivammathur/setup-php@v2
with :
php-version : 8.1
extensions : tokenizer
coverage : none
- name : Install php db migration validator dependency
run : composer global require antonkomarev/php-db-migration-validator --no-interaction
- name : Ensure all database migrations are irreversible
run : php-db-migration-validator --rule=irreversible ./database/migrations $ php vendor/bin/php-db-migration-validator --help
php db migration validator
--------------------------
by Anton Komarev <[email protected]>
Usage: php-db-migration-validator --rule=<rule> <path>
The following commands are available:
help Shows this usage instructions.
Options:
--rules=<rule> Validates the database migration(s) in the specified <path>.
Exits with code 1 on validation errors, 2 on other errors and 0 on success.
Available rules (at least one should be specified):
- irreversible — ensure if migration file has `down` method and this method throws an Exception.
php db migration validator é um software de código aberto licenciado sob a licença MIT por Anton Komarev. Se você gostaria de apoiar o desenvolvimento do php db migration validator , considere me patrocinar. Muito obrigado!
CyberCog é uma Unidade Social de entusiastas. Pesquisar as melhores soluções em desenvolvimento de produtos e software é a nossa paixão.