Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1259
Assunto : ADO.NET
Titulo: Atualizando uma imagem de migration

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon




Quando usamos migrations, em cada migration é gravada uma imagem do estado atual do modelo em um arquivo .resx. Esta imagem é calculada a partir das classes do modelo e utilizada para identificar se alteramos alguma coisa no modelo sem criar migration nova ou atualizar o banco. Em caso positivo, o sistema não roda.

Existem algumas situações em que desejaremos atualizar a imagem contida no arquivo .resx. Veja dois exemplos:


1) Trabalho em equipe: Você e outro membro da equipe criaram migrations ao mesmo tempo. Um comitou primeiro, o outro fez merge e pegou uma migration nova.

Nessa situação, o resx da última migration vai estar desatualizado, acusando uma diferença em relação ao modelo, diferença que na verdade não existe. Para resolver, você precisa atualizar a imagem da última migration.


2) Você está desenvolvendo algumas mudanças no banco. Como todo desenvolvimento, tem muitas idas e vindas e as vezes você precisa criar mais de uma migration. Só que publicar mais de uma migration para uma única task que você está fazendo é uma total bola fora. Não tem sentido que no resultado da sua task você publique várias migrations criando uma tabela, depois dropando um campo, criando o campo de novo, etc. Tem que fazer uma migration só.

Editar o código da migration para juntar tudo é fácil. Só que a imagem do resx vai estar errada e o EF vai ficar acusando isso e causando problema. É ai que você precisa atualizar a imagem do resx.

Observando como o .resx funciona, em geral você saberá quando precisa disso. Como ter certeza? Se você fizer um update-database e receber um warning de que o modelo está desatualizado, ai está, você precisa fazer. Só cuidado com a codificação das migrations, tenha certeza que não deixou nenhuma atualização de fora.


Como atualizar a imagem do resx:

A) Reverta o banco para a migration anterior:
update-database <migration anterior>

B) Atualize a imagem do resx:
add-migration <nome completo da ultima migration, incluindo o timestamp>

observe que esse é um uso diferente do add-migration. Com a presença do timestamp, ele vai apenas atualizar o resx.

C) Atualize o banco:
update-database

Agora a atualização do banco é feita sem nenhum warning



Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br