Como posso manter meu projeto de banco de dados do visualstudio sincronizado com meu banco de dados?

11

Gostaria de ter meu esquema de banco de dados sincronizado com meu projeto de banco de dados .dbproj do Visual Studio.

No momento, estou usando o SSMS na maior parte do meu trabalho de desenvolvimento de banco de dados e preciso usar manualmente a ferramenta de comparação de esquema do visual studio quando precisar que o esquema db e o .dbproj sejam sincronizados. Por que eu iria querer isso? Porque :

  • É a única maneira de verificar as alterações
  • É a única maneira de aplicar alterações
  • Não fazer isso causará alguns problemas de mesclagem ao obter arquivos (basicamente, se um "obter mais recente" contiver algumas alterações de banco de dados nos objetos db que eu atualizei sem a verificação, uma mesclagem não será acionada e é fácil acompanhar qual versão é qual)
  • É bom poder usar os recursos de pesquisa do VisualStudio em uma versão atualizada do esquema
  • É bom poder modificar procedimentos armazenados do VS (normalmente quando você renomeou um arquivo) usando os resultados da pesquisa.

Além de automatizar a ferramenta "schema compare" para que ela seja executada a cada 5 minutos (o que dificilmente soa como uma solução "limpa"), existem maneiras de conseguir isso?

Gostaria de continuar usando o SSMS, se possível, mas também estou interessado em maneiras de propagar automaticamente as alterações feitas usando as "Conexões do servidor Explorer / banco de dados" do visual studio no .dbproj.

Brann
fonte
você encontrou uma maneira de sincronizar seu projeto de banco de dados com o SSMS?

Respostas:

4

O SQL Server Management Studio é principalmente uma ferramenta de gerenciamento do SQL Server e, como tal, não é necessariamente criada para oferecer suporte aos cenários que você está procurando.

O Visual Studio Team System 2008 Database Edition e o Visual Studio Team System 2010 Pro / Ultimate incluem as ferramentas Developer de Banco de Dados (VSDB) para ajudar aqueles com extensos ativos de banco de dados a integrar seu esquema / view / proc / etc. desenvolvimento com o desenvolvimento de aplicativos.

O VSDB permite que você faça engenharia reversa dos esquemas do banco de dados existentes nos projetos do Visual Studio, para que você possa controlar os arquivos de script por elemento do esquema por controle de origem. Você também pode modificar / criar scripts de esquema do SQL Server para a criação de praticamente todos os elementos de esquema suportados pelo SQL 2005/2008/2010.

O VSDB também suporta a capacidade de implantar atualizações de esquema de banco de dados completas / parciais em bancos de dados vazios / existentes, onde ele realiza uma enorme quantidade de trabalho para tentar aplicar apenas as alterações necessárias para modificar o banco de dados existente (se presente), de modo que ele espelhe a estrutura de o projeto de banco de dados VSDB de origem.

O VSDB também inclui várias ferramentas para ajudá-lo a comparar esquemas entre projetos de banco de dados e / ou banco de dados e também permite diferenciar e mesclar o conteúdo da tabela.

No entanto, observe que, embora este conjunto de ferramentas seja suportado hoje, a equipe foi desmantelada e o produto está no modo de manutenção. O grupo de produtos SQL Server agora é responsável pela criação de ferramentas para desenvolvedores e trabalha duro para fazer exatamente isso :)

Richard Turner
fonte
1
Já sou usuário dos recursos do VS 2010 db. Mas ainda tenho que descobrir como usá-lo para modificar instantaneamente o meu projeto de banco de dados e o meu projeto de banco de dados ao mesmo tempo. A execução de uma comparação de esquema após cada modificação é muito complicada ... :(
Brann
Tendo começado a analisar o VSDB ontem, considero seu último parágrafo bastante alarmante. Parece que eu não deveria me preocupar em investir muito tempo ou energia ...?
Benjol 9/08/12
1

existem duas maneiras que conheço com os recursos avançados do VS2010 para fazer isso.

  1. Use o SSMS ou outra ferramenta para editar o esquema do banco de dados e, em seguida, execute a comparação do esquema periodicamente (final do dia) e, em seguida, importe quaisquer alterações de esquema no projeto do banco de dados.
  2. Edite os arquivos no seu projeto de banco de dados por meio do VS e crie um pacote de implantação que seja executado diretamente no seu banco de dados ou gere um script para você executar para atualizar seu esquema no banco de dados.
Ryathal
fonte
A segunda solução é, na minha opinião, a melhor solução. Você pode configurar um processo de implantação que leva apenas um clique. A edição de seus arquivos no Visual Studio os fará sair automaticamente do controle de origem. Eu trabalhei com o primeiro método, mas é difícil sempre fazer comparações de esquema. Além disso, pelo menos para mim, a ferramenta de comparação de esquema trava muito o Visual Studio.
Kris Harper #