A melhor maneira de controlar a versão T-SQL? [duplicado]

possível duplicado:
procedimentos armazenados/esquema DB no controlo de origem

Qual é a melhor maneira de controlar a versão das minhas tabelas, vistas, sprocs, etc? De preferência automatizados ou, pelo menos, semi-automatizados:)

Obrigado.
Author: Community, 2008-09-17

8 answers

Fiz esta pergunta ontem e obtive boas respostas.

Procedimentos armazenados/esquema DB no controlo de origem

 3
Author: Dana, 2017-05-23 11:46:22
Os artigos de K Scott Allen dizem tudo: http://odetocode.com/Blogs/scott/archive/2008/01/31/11710.aspx
 3
Author: Joe, 2008-09-17 17:57:21

Escrever programas de migração para todas as alterações de db e mantê-los num repositório. Aplicar uma política de fazer todas as alterações ao db apenas executando um script; dessa forma, há um registro do que foi feito, e uma maneira de revertê-lo. Investigue se existe uma estrutura de migração disponível para a sua combinação de linguagem/db favorita.

 1
Author: Aeon, 2008-09-17 16:49:39

USO o Visual Studio 2008 Pro create Database projects (outros tipos de projectos -> base de dados). Nós já usamos SVN como um repositório de código, então um projeto com um monte de .arquivos sql que representam seus procedimentos armazenados é apenas outra coisa para colocar no repositório-você pode ver diffs/histórico, etc. Isto funciona da mesma forma com VSS ou qualquer outro repositório que você usa.

A coisa boa sobre os projectos de bases de dados é que o seu projecto irá lembrar - se do texto da sua ligação, e tudo o que tem de fazer é clique com o botão direito em A.ficheiro sql (ou seleccione-os todos de uma vez!) e selecione Executar para atualizá-lo no db. Isso torna mais fácil atualizar o seu .os arquivos sql do repositório e executá-los todos para atualizar todos os seus procedimentos armazenados, verificando o seu banco de dados é atualizado em segundos.

Você também pode seleccionar criar um projecto LINQ (Visual C# -> Base de dados) e guardar todo o seu código LINQ no seu repositório.

Espero que isso ajude!
 1
Author: Mario, 2008-09-17 16:51:21

Se você fosse super preguiçoso, você pode usar o SMO (SQL Server Management Objects) ou se a utilizar o SQL Server antes de 2005 a DMO (distribuído managmeent objetos) para o script de todas as tabelas/views/procedimentos armazenados diariamente e, em seguida, compare o script para o script de controle de origem e, se houver qualquer mudança de verificar a nova versão. Você não será capaz de ter necessariamente um script tão bonito como se você apenas criou todas as alterações de db em scripts, mas pelo menos você pode recriar todas as tabelas / armazenadas procedimentos / opiniões. Por exemplo, em meus scripts de criação de tabela há frequentemente comentários.

Aqui está um artigo para começar a escrever: http://www.sqlteam.com/article/scripting-database-objects-using-smo-updated. Mais uma vez, isto é principalmente se você é muito preguiçoso para se preocupar com o controle de versão e não vai ajudar se você mudar algo duas vezes em um dia. Além disso, todos os programas de migração de dados ainda têm de ser gravados e verificados, porque isto não irá pegar SQL ad hoc, apenas objectos da base de dados.
 0
Author: Cervo, 2008-09-17 18:09:14

Escrevi um 'trigger' DDL que regista todas as alterações feitas à definição de objectos SQL (gatilhos, tabelas, SP, view, etc.). Eu poderia muito bem invocar SP estendido A partir do trigger e armazenar os detalhes em outra base de dados e usá-lo como repositório. Mas se a sua equipa é disciplinada, qualquer controlo de fonte deve fazer o truque. O gatilho é usado como um mecanismo de auditoria e é ideal para equipas que estão geograficamente dispersas.

 0
Author: ViSu, 2011-08-11 09:27:44

TentaRandolph , Uma das melhores ferramentas de controlo de versões SQL que conheço.

 0
Author: Daniel Zr, 2013-01-05 15:31:03
Estou a usar a Visual Studio Database edition que pode exportar o esquema do servidor SQL para um projecto Visual Studio. Isto é então armazenado no controle de fonte e pode ser implantado onde sempre necessário. O projeto base de dados VS é apenas um monte de scripts embora e é uma maneira desajeitada de trabalhar.

Um método mais robusto seria usar um framework de migração de banco de dados e se você estiver trabalhando com a. Net confira este post para uma boa descrição http://flux88.com/NETDatabaseMigrationToolRoundup.aspx.

Actualizar

Como mencionado nos comentários, esta página já não existe. Aqui está a última fotografia conhecida da máquina wayback.http://web.archive.org/web/20080828232742/http://flux88.com/NETDatabaseMigrationToolRoundup.aspx

 0
Author: Keith Bloom, 2013-02-07 15:15:52