Migrations com Entity Framework CORE Caio César Lorensetti ANALISTA SÊNIOR - MICROSOFT .NET C# Cosin Consulting linked by Isobar FULLSTACK DEVELOPER @caiolorensetti caiolorensetti@gmail.com
Por que utilizar Migrations? O que é o Migrations? Instalação Recursos disponíveis
Por que os programadores gostam de linhas de comando para realizar tarefas corriqueiras? É uma questão de Simplicidade vs Facilidade Andar sob um cabo de aço esticado é simples! Você precisa colocar um pé na frente do outro até chegar ao outro lado. Mas é fácil? Por que utilizar Migrations?
Simples. Mas não é fácil.
Por que os programadores gostam de linhas de comando para realizar tarefas corriqueiras? Ferramentas de linhas de comando são poderosas! Quanto mais você utiliza mais fácil se tornam, e com isso você tem mais poder e controle sob suas tarefas. Por que utilizar Migrations?
Por que utilizar Migrations? O que é o Migrations? Instalação Recursos disponíveis
É uma ferramenta que gera uma maneira de atualizar de forma incremental o esquema do banco de dados. Gerenciando o versionamento através de arquivos no próprio projeto e um histórico em uma tabela no banco. • O Entity Framework tem uma ferramenta em linhas de comando para o programador realizar atualização e rollback na estrutura do banco de dados, seguindo uma sequência lógica • Com Migrations é possível ver facilmente e gerenciar a versão do banco de dados com base num histórico das alterações, armazenadas no banco e na aplicação • Quem escreve uma atualização para o banco também escreve seu rollback, e pode testar os dois antes de ir para produção (responsabilidade) • Simples de usar • Documentação intuitiva dentro da própria ferramenta • O Migrations está dentro da biblioteca do Entity Framework O que é o Migrations?
“O Microsoft Entity Framework é uma ferramenta de mapeamento objeto relacional (ORM – Object Relational Management), que permite aos desenvolvedores trabalhar com classes (entidades) que correspondem a tabelas em um banco de dados, tornando transparente o acesso a estes dados e principalmente, eliminando a necessidade de escrever código de banco de dados” O que é o Migrations?
O que é o Migrations? O Migrations é composto por uma classe, um snapshot e uma tabela no banco de dados. • CLASSE • SNAPSHOT • REGISTRO BD
Por que utilizar Migrations? O que é o Migrations? Instalação Recursos disponíveis
Instalação ASP.NET Core 2.1+ Incluso! dotnet add package Microsoft.EntityFrameworkCore.Design Qualquer coisa além disso, só é necessário adicionar o pacote abaixo usando Nuget.
Por que utilizar Migrations? O que é o Migrations? Instalação Recursos disponíveis
Recursos disponíveis Criar um Migration Registra uma nova alteração que deve ser aplicada no banco de dados. dotnet ef migrations add AddSloganToSupplier Após uma alteração no mapeamento objeto relacional do seu DB Context o comando “add” vai gerar uma nova migração O método “Up” adiciona uma coluna “Slogan” na tabela “Suppliers” O método “Down” exclui a coluna “Slogan” na tabela “Suppliers”
Recursos disponíveis Atualiza o banco de dados Aplica a migração no BD sem escrever SQL.
Recursos disponíveis Programar a classe Migrations Você pode alterar a vontade os métodos Up e Down. Fazer verificações antes de realizar um rollback pode ser uma boa ideia. Use com responsabilidade.
Recursos disponíveis Reverter um Migration Desfaz a alteração de um Migration, da rollback no BD. dotnet ef database update 20181010151234_RemoveCurrencyEntity Executa o Down de todos os Migrations posteriores
Recursos disponíveis Remover um Migration Exclui a classe, desfaz o snapshot. Antes remover um migration lembre-se de fazer o seu revert no banco primeiro Quando mudar para uma branch menos atualizada também não esqueça de reverter suas alterações * *
Recursos disponíveis Gerar Scripts Gera scripts para aplicar uma mudança em outro ambiente ou gerar um pacote.
Recursos disponíveis Gerar Scripts dotnet ef migrations script -o C:scriptSuppliers.sql OUTPUT dotnet ef migrations script 20181022032509_AddSloganToSupplier -o C:scriptAddSloganToSupplier.sql APENAS O MIGRATION NO PARÂMETRO dotnet ef migrations script 20181010151234_RemoveCurrencyEntity 20181022032509_AddSloganToSupplier -o C:scriptRemoveCurrencyEntity_AND_AddSloganToSupplier.sql MIGRATION DAQUI ATÉ AQUI POR DEFAULT A BASE TODA
Recursos disponíveis Gerar Scripts dotnet ef migrations script 20181022032509_AddSloganToSupplier 20181010151234_RemoveCurrencyEntity -o C:scriptRevert_AddSloganToSupplier.sql REVERTER DAQUI ATÉ AQUI QUANDO INVERTIDO A ORDEM GERA O ROLLBACK DE UM MIGRATION PARA O OUTRO Para fazer rollback, revertendo atualizações
Recursos disponíveis Gerar Scripts Extras dotnet ef migrations script -o C:scriptSuppliers.sql –u | --idempotent PODE SER APLICADO PARA QUALQUER MIGRATION VERIFICA SE O MIGRATION JÁ FOI APLICADO ANTES dotnet ef database update 20181022032509_AddSloganToSupplier –c SuppliersContext SELECIONA O CONTEXTO SE HOUVER MAIS DE UM dotnet ef database update 20181022032509_AddSloganToSupplier –s .ApiSuppliers.Api.csproj -p .DataSuppliers.Infra.csproj --no-build SELECIONA O CONTEXTO SE HOUVER MAIS DE UM O PROJETO QUE TEM A CLASSE “Startup.cs” O PROJETO QUE TEM A CLASSE ONDE ESTÁ O CONTEXTO NÃO FAZ O BUILD ANTES DE RODAR
DÚVIDAS ? DEIXEM NOS COMENTÁRIO S caiolorensetti@gmail.com

Migrations com Entity Framework Core

  • 1.
    Migrations com Entity FrameworkCORE Caio César Lorensetti ANALISTA SÊNIOR - MICROSOFT .NET C# Cosin Consulting linked by Isobar FULLSTACK DEVELOPER @caiolorensetti caiolorensetti@gmail.com
  • 2.
    Por que utilizarMigrations? O que é o Migrations? Instalação Recursos disponíveis
  • 3.
    Por que osprogramadores gostam de linhas de comando para realizar tarefas corriqueiras? É uma questão de Simplicidade vs Facilidade Andar sob um cabo de aço esticado é simples! Você precisa colocar um pé na frente do outro até chegar ao outro lado. Mas é fácil? Por que utilizar Migrations?
  • 4.
  • 5.
    Por que osprogramadores gostam de linhas de comando para realizar tarefas corriqueiras? Ferramentas de linhas de comando são poderosas! Quanto mais você utiliza mais fácil se tornam, e com isso você tem mais poder e controle sob suas tarefas. Por que utilizar Migrations?
  • 6.
    Por que utilizarMigrations? O que é o Migrations? Instalação Recursos disponíveis
  • 7.
    É uma ferramentaque gera uma maneira de atualizar de forma incremental o esquema do banco de dados. Gerenciando o versionamento através de arquivos no próprio projeto e um histórico em uma tabela no banco. • O Entity Framework tem uma ferramenta em linhas de comando para o programador realizar atualização e rollback na estrutura do banco de dados, seguindo uma sequência lógica • Com Migrations é possível ver facilmente e gerenciar a versão do banco de dados com base num histórico das alterações, armazenadas no banco e na aplicação • Quem escreve uma atualização para o banco também escreve seu rollback, e pode testar os dois antes de ir para produção (responsabilidade) • Simples de usar • Documentação intuitiva dentro da própria ferramenta • O Migrations está dentro da biblioteca do Entity Framework O que é o Migrations?
  • 8.
    “O Microsoft EntityFramework é uma ferramenta de mapeamento objeto relacional (ORM – Object Relational Management), que permite aos desenvolvedores trabalhar com classes (entidades) que correspondem a tabelas em um banco de dados, tornando transparente o acesso a estes dados e principalmente, eliminando a necessidade de escrever código de banco de dados” O que é o Migrations?
  • 9.
    O que éo Migrations? O Migrations é composto por uma classe, um snapshot e uma tabela no banco de dados. • CLASSE • SNAPSHOT • REGISTRO BD
  • 10.
    Por que utilizarMigrations? O que é o Migrations? Instalação Recursos disponíveis
  • 11.
    Instalação ASP.NET Core 2.1+ Incluso! dotnetadd package Microsoft.EntityFrameworkCore.Design Qualquer coisa além disso, só é necessário adicionar o pacote abaixo usando Nuget.
  • 12.
    Por que utilizarMigrations? O que é o Migrations? Instalação Recursos disponíveis
  • 13.
    Recursos disponíveis Criar umMigration Registra uma nova alteração que deve ser aplicada no banco de dados. dotnet ef migrations add AddSloganToSupplier Após uma alteração no mapeamento objeto relacional do seu DB Context o comando “add” vai gerar uma nova migração O método “Up” adiciona uma coluna “Slogan” na tabela “Suppliers” O método “Down” exclui a coluna “Slogan” na tabela “Suppliers”
  • 14.
    Recursos disponíveis Atualiza obanco de dados Aplica a migração no BD sem escrever SQL.
  • 15.
    Recursos disponíveis Programar aclasse Migrations Você pode alterar a vontade os métodos Up e Down. Fazer verificações antes de realizar um rollback pode ser uma boa ideia. Use com responsabilidade.
  • 16.
    Recursos disponíveis Reverter umMigration Desfaz a alteração de um Migration, da rollback no BD. dotnet ef database update 20181010151234_RemoveCurrencyEntity Executa o Down de todos os Migrations posteriores
  • 17.
    Recursos disponíveis Remover umMigration Exclui a classe, desfaz o snapshot. Antes remover um migration lembre-se de fazer o seu revert no banco primeiro Quando mudar para uma branch menos atualizada também não esqueça de reverter suas alterações * *
  • 18.
    Recursos disponíveis Gerar Scripts Gerascripts para aplicar uma mudança em outro ambiente ou gerar um pacote.
  • 19.
    Recursos disponíveis Gerar Scripts dotnetef migrations script -o C:scriptSuppliers.sql OUTPUT dotnet ef migrations script 20181022032509_AddSloganToSupplier -o C:scriptAddSloganToSupplier.sql APENAS O MIGRATION NO PARÂMETRO dotnet ef migrations script 20181010151234_RemoveCurrencyEntity 20181022032509_AddSloganToSupplier -o C:scriptRemoveCurrencyEntity_AND_AddSloganToSupplier.sql MIGRATION DAQUI ATÉ AQUI POR DEFAULT A BASE TODA
  • 20.
    Recursos disponíveis Gerar Scripts dotnetef migrations script 20181022032509_AddSloganToSupplier 20181010151234_RemoveCurrencyEntity -o C:scriptRevert_AddSloganToSupplier.sql REVERTER DAQUI ATÉ AQUI QUANDO INVERTIDO A ORDEM GERA O ROLLBACK DE UM MIGRATION PARA O OUTRO Para fazer rollback, revertendo atualizações
  • 21.
    Recursos disponíveis Gerar Scripts Extras dotnetef migrations script -o C:scriptSuppliers.sql –u | --idempotent PODE SER APLICADO PARA QUALQUER MIGRATION VERIFICA SE O MIGRATION JÁ FOI APLICADO ANTES dotnet ef database update 20181022032509_AddSloganToSupplier –c SuppliersContext SELECIONA O CONTEXTO SE HOUVER MAIS DE UM dotnet ef database update 20181022032509_AddSloganToSupplier –s .ApiSuppliers.Api.csproj -p .DataSuppliers.Infra.csproj --no-build SELECIONA O CONTEXTO SE HOUVER MAIS DE UM O PROJETO QUE TEM A CLASSE “Startup.cs” O PROJETO QUE TEM A CLASSE ONDE ESTÁ O CONTEXTO NÃO FAZ O BUILD ANTES DE RODAR
  • 22.