O que tivemos de mais interesse em 2012? Quais foram melhores artigos, as opiniões que geraram maiores discussões? Isso é o que você vai encontrar nessa seleção de artigos que fizemos especialmente para você: os melhores conteúdos de 2012. Já que final e início de ano é sempre um tempo propício para fazer um balanço do que passou e o planejamento para o que ainda virá, esperamos que os artigos publicados aqui te ajudem nisso!
Boas festas e feliz 2013! Um abraço da equipe de Redação do iMasters!
No decorrer do desenvolvimento de um projeto, mudanças podem ocorrer no planejamento, no código e no banco. Mudanças no código são simples de se contornar, pois possuímos ferramentas para controle de versão do código, possibilitando voltar atrás, juntar versões e controlar a vida do nosso código. Porém, o controle de versões do banco de dados relacional (SGBDR) é um pouco mais complexo.
Em algumas empresas, já vi o controle de versões ficar em procedures, em que a cada versão era criada uma proc nova, que iria alterar ou recriar a base e alimentar com dados para teste. Porém eram procs criadas manualmente.
Alguns frameworks de ORM vinham com um controle de versão da base de dados, como exemplo o Hibernate no java, o Active Record no ruby, o Doctrine no php, o projeto open source Migrations.net baseado no Active Record e vários outros. Mas o Entity Framework, framework ORM da Microsoft, open source, não possuía um controle de versão desde o seu início.
O suporte a migrations veio somente na versão 4.3.1 do Entity Framewrok, anteriormente tínhamos apenas três escolhas de estratégias para a criação de data bases: CreateDatabaseIfNotExists, que somente cria a base se ela não existir; DropCreateDatabaseAlways, que sempre apaga e recria o base de dados; DropCreateDatabaseIfModelChanges, que apaga e recria a base somente se o modelo foi alterado – sendo essa a opção mais próxima do que precisávamos, mas ainda não era perfeita, pois acabávamos perdendo os dados antigos e caso precisássemos voltar a versão, não era possível.
Com o Code First Migrations, podemos ter versões da base de dados, voltar versões e manter um histórico. O Migrations vigia suas classes POCO e cria métodos de update e downgrade com o código necessário para aplicar as mudanças. Algo interessante é ressaltar que podemos alterar com lambda expressions ou com SQL puro as mudanças que o Migrations vai fazer.
Mas para utilizar o Migrations, você precisa habilitá-lo. Para isso, na Package Manager Console use o comando:
Enable-Migrations
Mesmo que você não tenha habilitado na criação da sua base de dados, se criada pelo Code First, vai ser criada uma tabela do sistema com a migration inicial. Ao habilitar a migrations, vai ser criada uma pasta para os arquivos de código das migrations. Depois você tem dois caminhos: migrations normal e automatic migrations.
Continue lendo este artigo e saiba mais sobre migrations normal e automático.







