O que são as migrations do Doctrine?
O Doctrine é uma biblioteca ORM para PHP que permite que você interaja com bancos de dados como se fossem objetos. No Symfony, o Doctrine é um dos componentes mais populares e, juntamente com o ORM, ele fornece um recurso adicional, as migrations, que permite gerenciar e automatizar as alterações no banco de dados.
Como criar as migrations no Symfony?
Para criar uma nova migration, você pode executar o comando abaixo:
php bin/console make:migration
Este comando cria uma nova classe no diretório migrations/
que representa a alteração que você deseja fazer no banco de dados. Por exemplo, se você quiser adicionar uma nova coluna à tabela user
, a classe gerada será algo como:
namespace App\Migrations;
use Doctrine\Migrations\AbstractMigration;
use Doctrine\Schema\Table;
class Version20220511141054 extends AbstractMigration
{
public function up(Schema $schema) : void
{
$table = $schema->getTable('user');
$table->addColumn('new_column', 'string');
}
}
Esta classe possui um método up()
que representa a alteração no banco de dados. No exemplo acima, estamos adicionando uma nova coluna à tabela de usuários.
Como executar as migrations?
Para executar as migrations que você criou, execute o seguinte comando:
php bin/console doctrine:migrations:migrate
Este comando irá executar todas as migrations que ainda não foram executadas, ou seja, ele irá aplicar as alterações no banco de dados. Isso significa que, se você criar uma nova migration, ela não será executada automaticamente até que você execute o comando acima.
Como fazer o rollback das migrations?
Se por algum motivo você precisar reverter uma migration, você pode executar o comando abaixo:
php bin/console doctrine:migrations:execute --down {version}
Onde {version}
é o número da versão da migration que você deseja reverter. Este comando irá executar o método down()
da migration selecionada. No entanto, este método deve ser implementado corretamente dentro da classe da migration.
Conclusão:
As migrations do Doctrine facilitam muito os processos de gerenciamento das alterações no banco de dados, além de evitar problemas como a perda de dados durante atualizações. A partir deste artigo, você pode ver como criar, executar e reverter as migrations no Symfony usando o Doctrine. Esperamos que isso ajude você em seus projetos futuros!