(16) 981791110 contato@policast.studio

O que é o DoctrineMigrationsBundle?

O DoctrineMigrationsBundle é um bundle do Symfony que fornece suporte para versionamento de bancos de dados através de migrações. As migrações permitem que você atualize seu banco de dados de forma estruturada e mantenha o controle das alterações feitas no esquema do banco de dados através do controle de versionamento.

Como funciona o DoctrineMigrationsBundle?

O DoctrineMigrationsBundle utiliza migrações para gerenciar as alterações do esquema do banco de dados. Cada migração é uma classe PHP que contém dois métodos: up() e down(). O método up() é usado para aplicar as alterações no esquema enquanto o método down() é usado para reverter as alterações.

Quando você executa as migrações, o DoctrineMigrationsBundle verifica qual é a última migração que foi aplicada no banco de dados e compara com as migrações que ainda não foram aplicadas. Em seguida, aplica as migrações que ainda não foram aplicadas até chegar a última migração definida.

Como instalar o DoctrineMigrationsBundle?

Para instalar o DoctrineMigrationsBundle, você precisa adicioná-lo ao seu projeto Symfony através do Composer. Basta adicionar a dependência “doctrine/doctrine-migrations-bundle” ao seu arquivo composer.json e em seguida executar o comando “composer update”.

Depois de instalado, você precisa configurá-lo em seu arquivo de configuração do Symfony. Adicione a seguinte configuração em app/config/config.yml:


doctrine_migrations:
  dir_name: "%kernel.root_dir%/DoctrineMigrations"
  namespace: ApplicationMigrations

Como criar uma migração?

Para criar uma migração, você precisa executar o seguinte comando no terminal:

php bin/console doctrine:migrations:generate

Este comando irá gerar uma nova classe de migração na pasta especificada na configuração do DoctrineMigrationsBundle. Você deve adicionar a lógica de migração nos métodos up() e down() da classe gerada.

Como executar as migrações?

Para executar as migrações, você precisa executar o seguinte comando no terminal:

php bin/console doctrine:migrations:migrate

Este comando irá aplicar todas as migrações que ainda não foram aplicadas no banco de dados. Se houver uma migração que ocorra um erro, o processo de migração será interrompido e as migrações serão revertidas.

Como reverter uma migração?

Para reverter uma migração, você precisa executar o seguinte comando no terminal:

php bin/console doctrine:migrations:execute --down <version>

Onde <version> é o número da migração que você deseja reverter. Este comando irá executar o método down() da migração e reverter as alterações feitas no esquema do banco de dados.

Como visualizar o histórico de migrações?

Para visualizar o histórico de migrações, você precisa executar o seguinte comando no terminal:

php bin/console doctrine:migrations:status

Este comando irá exibir uma tabela que mostra o status de cada migração no banco de dados. Você pode ver qual foi a última migração aplicada, as migrações que foram aplicadas e as que ainda não foram aplicadas.

Como personalizar o diretório das migrações?

Para personalizar o diretório das migrações, você precisa alterar a configuração do DoctrineMigrationsBundle em app/config/config.yml. Você pode alterar o valor de dir_name para especificar o diretório desejado:


doctrine_migrations:
  dir_name: "%kernel.root_dir%/MyMigrations"
  namespace: ApplicationMigrations

Como personalizar o namespace das migrações?

Para personalizar o namespace das migrações, você precisa alterar a configuração do DoctrineMigrationsBundle em app/config/config.yml. Você pode alterar o valor de namespace para especificar o namespace desejado:


doctrine_migrations:
  dir_name: "%kernel.root_dir%/DoctrineMigrations"
  namespace: MyNamespaceMigrations

Como personalizar a conexão do banco de dados?

Para personalizar a conexão do banco de dados, você precisa alterar a configuração do DoctrineMigrationsBundle em app/config/config.yml. Você pode adicionar a seguinte configuração para especificar a conexão desejada:


doctrine_migrations:
  connection: my_connection

Onde “my_connection” é o nome da conexão definida em app/config/config.yml.