DEV Community

Yuri Peixinho
Yuri Peixinho

Posted on

Migrações com EF Core

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]
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

E para aplicar essa migração, é necessário atualizar o banco de dados.

Update-Database
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Remover migração

Depois de reverter o banco de dados, você pode remover a migração do projeto com o comando:

Remove-Migration
Enter fullscreen mode Exit fullscreen mode

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post