bancos de dados de desenvolvimento e produção de sincronização de migração

Estou usando o MVC 5 com o NET Framework 4.5.1. com o Code-first. Também estou usando Migrações com o servidor SQL 2012 e (localdb) \ v11.0.

Estou no meio do desenvolvimento de um projeto usando C # e MVC5. Durante o desenvolvimento, criei muitas tabelas novas no meu computador de desenvolvimento e alterei o campo "Nome", para o qual acredito que o sistema faz um índice. Eu adicionei e apaguei várias vezes.

Depois disso, adicionei muitas das novas tabelas não relacionadas, mas, por algum motivo, minhas migrações começaram a gerar erros de restrição externa devido aos índices do campo "Nome". Esses erros continuavam se multiplicando à medida que eu os corrigia; portanto, decidi voltar ao estado inicial na migração e redefinir usando a posição atual como um novo ponto de partida. Eu esperava que a tabela de produção visse esse novo ponto de partida no banco de dados de desenvolvimento e se sincronizasse novamente com o estado de desenvolvimento. Eu pensei que tinha lido em algum lugar que o db de produção corresponde ao db de desenvolvimento e se atualiza. Acredito que exista um arquivo de migração no banco de dados de produção que corresponda ao arquivo no banco de desenvolvimento db - esse arquivo estava claramente fora de sincronia. Eu considerei excluir os dados, mas estou adiando até receber conselhos.

De qualquer forma, mudei o nome do diretório de migrações no computador Dev e o excluí do projeto. Em seguida, reinicializei minhas tabelas (usando um novo nome de banco de dados no banco de dados local) no computador dev e recarreguei-o com os dados de inicialização. Tudo funcionou.

Agora, eu tinha um novo problema, meu banco de dados de produção e meu banco de dados de desenvolvimento eram diferentes, e minha migração no computador de desenvolvimento foi configurada para criar novos arquivos, enquanto o que estava no estado de produção esperava a migração mais antiga. Toda vez que eu tentava atualizar o banco de dados de produção usando o computador de desenvolvimento, ficava recebendo um erro de que os arquivos existiam - o que, é claro, eles existiam.

Então, comentei todos os arquivos criados no meu arquivo de migração e tentei novamente. Agora, o banco de dados de produção seria iniciado, mas não seria executado porque o código atualizado apresentava novos campos aos quais se referia, os quais não foram criados no banco de dados de produção. Então, no meu banco de dados de produção, comecei a receber erros de todos os campos que estavam faltando. , Tentei tornar as migrações automáticas verdadeiras também, isso não funcionou. Acho que a única maneira de corrigir isso é entrar manualmente e sincronizar os campos um por um.

PERGUNTA 1: Existe uma maneira automática de sincronizar (usando migrações) o banco de dados de produção e o banco de dados de desenvolvimento para que eles se tornem os mesmos que o banco de dados de desenvolvimento?

PERGUNTA 2: Tendo em vista o cenário acima, qual teria sido a melhor maneira de redefinir as migrações com um banco de dados de produção também?

questionAnswers(1)

yourAnswerToTheQuestion