Já que configuramos a conexão e geramos o database, vamos prosseguir com a configuração das migrações.
Implementando MigrationRunner
Adicione os pacotes que vão ser utilizados:
Primeiro, vamos criar um método de extensão para a migração do database. Em Migrations/, adicione a classe MigrateExtension
:
Este método irá executar todas as migrações disponíveis que ainda não foram aplicadas ao banco de dados.
Configurando o serviço
Agora, vamos configurar o FluentMigrator. Para isso, crie o seguinte método na classe Bootstrapper:
O código acima:
- Adiciona o FluentMigratorCore ao serviço de injeção de dependência
- Configura o FluentMigrator para usar o MySQL 8
- Usa a string de conexão completa
- Faz a varredura no assembly “SistemaDeEstoque.Infrastructure” para todas as migrações
- Aplica todas as migrações encontradas
A classe Bootstrapper é utilizada para adicionar os serviços de cada projeto. Com ela podemos organizar os serviços por projeto e diminuir a quantidade de linhas de código da classe Main
Primeiro, adicione o pacote com o seguinte comando:
Dentro da classe, crie um método que extende da interface IServiceCollection
e chame a função AdicionarFluentMigrator
passando os parâmetros:
Esses métodos irão adicionar o FluentMigrator ao nosso projeto e configurar o runner para usar o MySQL.
Main
Na classe Program
, adicione:
E na função AtualizarBaseDeDados()
, chame o método de extensão MigrateBancoDeDados()
:
O código está pronto para gerar as migrações, na próxima parte iremos criar a primeira versão da migração com uma tabela de exemplo.
FluentMigrator com MySQL para migrações de esquemas mais simples Pt.3