As modelagens de dados mudam de acordo com os recursos e novas funcionalidades do projeto, ou seja, quando novas entidades ou propriedades são adicionadas ou removidas o Schema de bancos de dados tem que ficar em plena sincronia com o aplicativo.
Para isso, o EF Core disponibiliza um recurso de migração o Schema do banco de modo que preserve os dados dentro desse banco.
Como funciona?
Quando uma alteração de modelo de dados é feita o desenvolvedor pode gerar a migração descrevendo as alterações necessárias para a sincronia do banco.
O próprio EF Core compara o modelo atual e o antigo para gerar os arquivos de migração, que pode ser acompanhado dentro do código fonte do próprio projeto.
Criando a primeira migração
No Packager Manager Console, digite:
Add-Migration [Nome]
A partir disso, você pode fazer que o EF Core crie o seu banco de dados e schemas a partir do arquivo gerado
Update-Database
Criando novas migrações
Certo, agora imagine que seu projeto evoluiu e você implementou diversos atributos e entidades no seu projeto. Então o seu models do backend e o banco de dados estão fora de sincronia. Para sincronizar então é necessário subir uma nova migração.
Add-Migration [Nome]
E para aplicar essa migração, é necessário atualizar o banco de dados.
Update-Database
Aplicando isso, o nosso EF Core já entende que existe uma tabela aplicada anteriormente, já que esse fato é registrado na tabela de migrações.
Reverter migração
Para reverter uma migração no Entity Framework Core, você pode usar o comando dotnet ef database update
seguido pelo nome da migração anterior (ou o valor 0
para voltar ao estado inicial, sem migrações aplicadas).
Reverter para uma migração específica:
Se quiser reverter para uma migração específica, basta passar o nome da migração desejada:
Update-Database NomeDaMigracao
Reverter todas as migrações (voltar ao estado inicial):
Para remover todas as migrações aplicadas ao banco de dados, use 0
como parâmetro:
Update-Database 0
Remover migração
Depois de reverter o banco de dados, você pode remover a migração do projeto com o comando:
Remove-Migration
Top comments (0)