O documento discute Entity Framework Code First Migrations, que permite gerenciar alterações na estrutura do banco de dados de forma estruturada. Demonstra como criar migrações para adicionar novas entidades e propriedades ao banco de dados, alterar dados existentes via comandos SQL, e customizar o processo de migração.
3. Ruby on Rails Migrations
Migrations are a convenient way for you
to alter your database in a
structured and organized manner.
You could edit fragments of SQL by hand but
you would then be responsible for telling
other developers that they need to go and run them.
You’d also have to keep track of which
changes need to be run against the production
machines next time you deploy.
Fonte: http://guides.rubyonrails.org/migrations.html
8. Demo: Primeira migração
• Enable-Migrations
– Configuration
• Adicionar classe da entidade País
• Adicionar classe de contexto
• Add-Migration Paises
– migration paises.cs
• Update-Database
9. Demo: Segunda migração
• Adicionar classe da entidade Estado
• Add-Migration Estados
– migration estados.cs
• Foreign-Key
• Update-Database
10. Demo: alterando a migração
• Downgrade -TargetMigration
• Adicionar um índice à tabela de Estados
– .Index(t => t.Nome, unique: true);
• Executar um comando SQL diretamente
– Sql("UPDATE ESTADOS SET SIGLA = 'SC' WHERE NOME =
'Santa Catarina'");
• Update-database
13. Alguns problemas...
• Renomear tabela
– Gerou código para criar a tabela com o novo nome
– Gerou código para excluir a tabela velha mas com o nome novo
• Resultado: Excluiu a tabela recém criada
• Sql Azure Federation
– Separa a estrutura de dados em vários databases
– Antes de aplicar a migração precisa dizer qual federação usar.
• Solução temporária: gerar um script sql e incluir na mão o federation
• Gerar o sql de muitas migrações
– Não gerou na ordem correta.
– Não avaliei se foi corrigido na versão 4.3.0 do EF.
15. Referências
• Meu blog
– www.rafaelleonhardt.com.br
• Introdução ao Entity Framework Code First Migrations
• Data-Tier Applications X Code First Migrations
• Entity Framework: primeiro Database, Modelo ou Código
• ADO Team Blog
– http://blogs.msdn.com/b/adonet/
• EF 4.3 Released
• EF 4.3 Code-Based Migrations Walkthrough
• EF 4.3 Automatic Migrations Walkthrough
Fonte da imagem: http://www.red-gate.com/products/sql-development/sql-developer-bundle/learn-more/improving-developmentPerguntar: Vocês como desenvolvedor, como vocês garantem que um campo novo irá ser criado na base do cliente em uma atualização de sistema? Quais são as preocupações com este processo?E quando tem mais de um programador desenvolvendo?Quais as preocupações em relação ao banco de dados durante o desenvolvimento e manutenção de um aplicativo?Alteracao de campo, precisa ir pro clienteCriacao de chaves, indice, etcCriacao de tabela.Levar um sistema na versao 2 para a versao 5. Quais alteracoes precisam ser aplicadas na base.