(16) 981791110 contato@policast.studio

O que é o DoctrineMigrationsBundle?

O DoctrineMigrationsBundle é uma extensão do Symfony para lidar com migrações de banco de dados usando a biblioteca Doctrine ORM. Ele permite que você atualize a estrutura do banco de dados do seu aplicativo de forma automatizada, mantendo o controle de versão do seu schema e evitando problemas em produção.

Por que usar o DoctrineMigrationsBundle?

O uso do DoctrineMigrationsBundle traz diversos benefícios, como maior controle de versão da estrutura do banco de dados, facilidade de deploy em produção e um histórico completo das alterações realizadas no schema. Além disso, ele permite que várias pessoas trabalhem em conjunto, agilizando o desenvolvimento do aplicativo.

Como instalar o DoctrineMigrationsBundle?

Para instalar o DoctrineMigrationsBundle, abra o arquivo composer.json do seu projeto e adicione a seguinte dependência:

"doctrine/doctrine-migrations-bundle": "^2.3"

Depois, execute o comando composer install para baixar as dependências e atualizar o autoload. Por fim, adicione a seguinte configuração no arquivo config/bundles.php:

DoctrineBundleMigrationsBundleDoctrineMigrationsBundle::class => ['all' => true],

Como criar uma migração?

Para criar uma nova migração, execute o comando php bin/console make:migration. Ele criará um arquivo de migração com o nome no formato VersionYYYYMMDDHHMMSS, contendo os comandos necessários para a alteração do schema. Você pode, então, editar esse arquivo para adicionar as alterações desejadas.

Como executar uma migração?

Para executar as migrações pendentes, execute o comando php bin/console doctrine:migrations:migrate. O DoctrineMigrationsBundle irá verificar se há migrações pendentes e executá-las na ordem correta. É importante lembrar que, antes de executar migrações em ambiente de produção, você deve realizar um backup do banco de dados.

Como verificar o status das migrações?

Para verificar o status das migrações, execute o comando php bin/console doctrine:migrations:status. Ele irá mostrar as migrações já executadas e as pendentes, bem como a versão atual do schema do banco de dados.

Como reverter uma migração?

Para reverter a última migração executada, execute o comando php bin/console doctrine:migrations:execute --down <version>, substituindo <version> pelo número da versão da migração que deseja reverter. Se você quiser reverter várias migrações, basta executar o comando várias vezes, uma para cada migração.

Como criar uma migração vazia?

Para criar uma migração vazia, execute o comando php bin/console make:migration e pressione Enter quando solicitado a informar a tabela a ser atualizada. Isso criará um arquivo de migração em branco, que você pode editar para adicionar as alterações desejadas.

Como gerar um diff das migrações?

Para gerar um arquivo SQL contendo as diferenças entre a estrutura atual do banco de dados e a estrutura especificada nas migrações, execute o comando php bin/console doctrine:migrations:diff. Esse arquivo pode ser usado para atualizar manualmente o banco de dados, ou para auditar as alterações antes de executá-las em produção.

Como forçar a execução de uma migração já executada?

Para forçar a execução de uma migração já executada, execute o comando php bin/console doctrine:migrations:execute <version>, substituindo <version> pelo número da versão da migração desejada. Isso pode ser útil em caso de problemas durante a execução de uma migração, ou para reexecutar uma migração em caso de erro.

Como usar o DoctrineMigrationsBundle com múltiplos bancos de dados?

Para usar o DoctrineMigrationsBundle com múltiplos bancos de dados, você precisa configurar um EntityManager para cada banco de dados e setar o EntityManager correto antes de cada operação com o DoctrineMigrationsBundle. Para setar o EntityManager correto, implemente o método getEntityManager() na sua migração.

protected function getEntityManager(): EntityManagerInterface
{
return $this->getContainer()->get('doctrine')->getManager('nome_do_entity_manager');
}