Migrations

Este guia descreve o processo completo de configuração da Connection String, configuração do DbContext, criação e aplicação de Migrations usando Entity Framework Core com SQL Server 2025 em Docker.

Configurar a Connection String no appsettings.json

Definir a String de Conexão apontando explicitamente para o IP, evitando dependência de resolução de localhost.

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=127.0.0.1,1433;Database=repository-pattern;User ID=sa;Password=Sql@2025Secure!;Encrypt=True;TrustServerCertificate=True;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

Configurar o DbContext no Program.cs

Após a criação do builder, configurar o DbContext utilizando a Connection String definida no appsettings.json:

Com isso, o AppDbContext passar a estar disponível para injeção de dependência em toda a aplicação.

Limpar e reconstruir o projeto

Antes de criar as migrations, limpar e reconstruir o projeto para garantir que não exista lixo de build.

Comandos:

Exemplo de execução:

Saída esperada: build construído com êxito.

Verificar se o SQL Server está em execução no Docker

Considerando que o SQL Server foi configurado previamente em Docker, é necessário verificar se o container está ativo.

Será iniciado o processo de migração e para isso o banco de dados precisa estar sendo executado. Considerando que o banco de dados está sendo executado em Docker e foi configurado anteriormente no início do projeto, verificar se ele está sendo executado, se ele existe, caso esteja parado inicia-lo, verificar sua execução.

Caso o container esteja parado, inicia-lo:

Adicionar ao Migrations com a execução de dotnet ef migrations add

O container deve estar exposto na porta 1433.

Criar a migration inicial

Com o banco em execução e o projeto compilando corretamente, criar a migration:

Exemplo de execução:

Após a execução será criado o diretório Migrations, contendo os seguintes arquivos:

  • AppDbContextModelSnapshot

  • YYYYMMDDHHMMSS_v1

Atualizar a ferramenta dotnet-ef

Caso apareça o aviso de versão entre runtime e ferramentas, atualize o dotnet-ef com os comandos:

Aviso:

Exemplo de atualização do dotnet-ef:

A versão deve corresponder ao runtime utilizado.

Validar conexão com o SQL Server via sqlcmd

Para validar conectividade e TLS, utilize o sqlcmd:

Exemplo de execução com execução de comando simples:

Isso confirma conectividade, autenticação e criptografia.

Caso necessário:

  • Atualizar o Microsoft ODB Driver for SQL Server

  • Instalar o SqlCmd

  • Instalar o WinGet

Documentação oficial da Microsoft deve ser usada como referência.

Aplicação a migration no banco de dados

Com tudo validado, aplique a migration:

Exemplo de aplicação:

Durante o processo:

  • O banco de dados repository-pattern é criado

  • A tabela __EFMigrationsHistory é gerada

  • As tabelas definidas no modelo são criadas

  • A migration é registrada

Resultado final

O banco de dados e suas tabelas foram criados com sucesso.

Neste cenário, o banco está sendo gerenciado e visualizado utilizando o Microsoft Azure Data Azure.

Atualizado