AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 37600
Accepted
QFDev
QFDev
Asked: 2013-03-27 08:03:31 +0800 CST2013-03-27 08:03:31 +0800 CST 2013-03-27 08:03:31 +0800 CST

Procedimentos armazenados sob controle de origem, prática recomendada

  • 772

Atualmente, estou usando o Tortoise SVN para controlar a origem de um aplicativo da Web .NET. Qual seria a melhor maneira de trazer nossos procedimentos armazenados do SQL Server para o controle de origem? Atualmente, estou usando o VS 2010 como meu ambiente de desenvolvimento e me conectando a um banco de dados SQL Server 2008 R2 externo usando o SQL Server Data Tools (SSDT).

O que tenho feito no passado é salvar os procs em um arquivo .sql e manter esses arquivos sob controle de origem. Tenho certeza que deve haver uma maneira mais eficiente do que isso? Existe uma extensão que eu possa instalar no VS2010, SSDT ou mesmo SQL Server na máquina de produção?

sql-server sql-server-2008
  • 7 7 respostas
  • 30571 Views

7 respostas

  • Voted
  1. Best Answer
    RoKa
    2013-03-27T08:15:44+08:002013-03-27T08:15:44+08:00

    Existem ferramentas por aí, como esta do Redgate , mas sempre achei que o melhor é salvar como arquivos SQL, talvez até em um Projeto de Banco de Dados (SSDT?) em sua solução.

    Junto com isso, sugiro as seguintes orientações:

    • Sempre assuma a versão do SVN como a "atual" / "mais recente"
    • Certifique-se de que todos os scripts executados tenham um " if exists then drop" apropriado no início
    • Lembre-se de fazer um script de suas permissões, se houver

    Você pode inicialmente criar esses arquivos SQL por scripts diretamente do SSMS e pode definir o SSMS para criar scripts de todos os seus " drop" e " create", bem como suas permissões.

    • 15
  2. Carol Baker West
    2013-03-28T02:02:09+08:002013-03-28T02:02:09+08:00

    Salvar os arquivos SQL no controle do código-fonte fornece controle apenas sobre os arquivos SQL. Ele não controla as alterações dos objetos de banco de dados reais, nem impede alterações simultâneas do mesmo objeto de banco de dados por vários usuários (e acho que você gostaria de ter isso sob controle também). O que usamos é uma ferramenta de terceiros ( Versão ApexSQL), ele se integra tanto com SSMS quanto com VS, você pode optar por trabalhar com uma versão de banco de dados do objeto ou com uma versão de Source Control. Se você estiver editando uma versão de banco de dados, o check-out será feito automaticamente apenas para você, para que ninguém mais possa editá-la (não mescla as alterações de usuários diferentes). Somente quando você fizer o check-in novamente, outras pessoas poderão modificá-lo. E você pode ter sua versão SC diferente da versão de um objeto vivo (eu uso isso quando saio de dia e planejo terminar as edições e testar no próximo)

    • 4
  3. druzin
    2013-03-27T08:18:55+08:002013-03-27T08:18:55+08:00

    Use o RedGate Source Control para conectá-lo ao seu controle de origem.

    http://www.red-gate.com/products/sql-development/sql-source-control/

    Ele conectará seu SSMS diretamente ao seu repositório de controle de origem e até permitirá a verificação de dados estáticos.

    Funciona como um encanto

    • 3
  4. SqlACID
    2013-03-27T15:13:10+08:002013-03-27T15:13:10+08:00

    Experimente o Ankhsvn , altamente recomendado e gratuito.

    Da página inicial:

    AnkhSVN é um Provedor de Controle de Origem do Subversion para Microsoft Visual Studio 2005, 2008, 2010 e 2012 .

    O AnkhSVN fornece suporte ao gerenciamento de código-fonte do Apache™ Subversion® para todos os tipos de projetos suportados pelo Visual Studio e permite que você execute as operações de controle de versão mais comuns diretamente de dentro do Microsoft Visual Studio IDE.

    O painel de alterações pendentes oferece uma visão exclusiva do seu processo de desenvolvimento e fornece acesso fácil ao código-fonte e aos recursos de gerenciamento de problemas. A integração de controle de código-fonte profundo (SCC) permite que você se concentre no desenvolvimento, enquanto o AnkhSVN acompanha todas as suas alterações e fornece as ferramentas para lidar efetivamente com suas necessidades específicas.

    • 3
  5. souplex
    2014-05-20T01:27:00+08:002014-05-20T01:27:00+08:00

    Eu tentei o projeto de banco de dados do RedGate e do Visual Studio e prefiro armazenar a definição do banco de dados no projeto de banco de dados. Assim que o banco de dados se tornar parte da solução, você poderá usar seu provedor de controle de origem preferido. A maioria tem excelente integração com o Visual Studio.

    Com as ferramentas SSDT, você tem a 'última versão' da definição do banco de dados, permitindo que você faça facilmente comparações de esquema e gere scripts de atualização de esquema.

    Dito isso, o esquema geralmente é apenas uma parte da equação. Na vida real, os bancos de dados já têm muitos dados. E meus usuários tendem a ficar bastante desapontados quando o perdem.

    Assim que eu lancei a v1.0 surgiu a necessidade de manter os scripts de atualização. Às vezes, eles contêm apenas alterações de esquema, mas muitas vezes eu preciso criar padrões com base no conteúdo de alguma outra tabela, preciso liberar uma restrição específica até que eu semeie os dados etc. Normalmente, simplesmente atualizar o esquema não é suficiente. Minha preferência é ter esses scripts de atualização em uma pasta separada no projeto de banco de dados também. Eles geralmente se parecem com 'atualização de v1.0 para v1.1'.

    Meus bancos de dados sempre têm uma tabela de referência que me informa o número da versão atual, para que eu possa bloquear atualizações incompatíveis. A primeira instrução em meus scripts de atualização verifica a versão atual e sai se for diferente do esperado.

    Outro benefício dos projetos de banco de dados é poder implantar diferentes conjuntos de dados com base no mesmo esquema. Eu tenho conjuntos de dados diferentes para desenvolvimento, equipe de controle de qualidade, teste de aceitação do usuário e para testes de integração automatizados. Como um projeto de banco de dados pode ter apenas 1 script pós-implantação, o truque aqui é criar um novo projeto de banco de dados que faça referência ao projeto 'mestre' e tornar o conjunto de dados personalizado parte dos processos pós-implantação desse projeto.

    Estes foram meus 2 centavos, Qualquer que seja o processo que você venha, acima de tudo, ele deve se adequar a você e sua equipe e, com sorte, apoiá-lo na maioria das tarefas comuns.

    • 3
  6. Anup Saund
    2015-04-01T05:29:21+08:002015-04-01T05:29:21+08:00

    Acabei escrevendo uma ferramenta eu mesmo.

    Está disponível para download gratuito - http://www.gitsql.net

    Espero que ajude outras pessoas que desejam alcançar o mesmo objetivo final.

    Aqui está um artigo que descreve como controlar a origem do SQL Server. http://gitsql.net/documentation-04_SQL_Server_and_GIT

    Tentei deixar o mais fácil possível. (3 telas)

    • Conecte-se ao SQL Server
    • Selecionar objetos
    • Escolha a pasta para exportar para/importar de

    Eu também - acidentalmente - adicionei o recurso de poder escolher seletivamente objetos individuais para importar - ou exportar. O que torna muito fácil durante o desenvolvimento.

    Eu normalmente faria uma alteração em um procedimento armazenado e uma tabela e, em seguida, exportaria esses dois objetos para um diretório GIT.

    Então eu uso a Árvore de Origem para ver visualmente as alterações e, em seguida, confirmá-las no bitbucket, se estiver satisfeito.

    • 0
  7. drizin
    2016-01-29T12:59:16+08:002016-01-29T12:59:16+08:00

    Minha empresa acabou de desenvolver esta nova ferramenta ( gratuita ) que ajuda você a extrair facilmente scripts para bancos de dados SQL, pode fazer comparações , pode iniciar o WinMerge para comparar rapidamente scripts com banco de dados ao vivo e também pode sincronizar diferenças tanto atualizando os scripts quanto aplicando as alterações ao banco de dados (exceto tabelas, que envolveriam mais complexidade e mais riscos).

    Servantt é o WinMerge para comparar bancos de dados SQL Server com scripts controlados por versão.

    Apoia e incentiva as melhores práticas no desenvolvimento de software:

    • Mantendo objetos de banco de dados sob controle de versão (*)
    • Removendo direitos de acesso de desenvolvedores em ambientes de produção
    • Revisão do DBA de alterações em procedimentos/visualizações para gargalos de desempenho e padrões de nomenclatura
    • Nomear objetos usando identificadores totalmente qualificados e delimitadores entre colchetes (corrige os scripts CREATE PROCEDURE/VIEW/FUNCTION/etc)

    (*) Os scripts são salvos em uma pasta local que pode ser uma cópia de trabalho do Git, Subversion, TFS, Source Safe ou qualquer outro VCS.

    Download grátis: http://servantt.com

    A versão profissional (que ainda está em desenvolvimento) será uma fera completamente diferente - é voltada para automação de implantação (gerenciamento de lançamentos), para automatizar tarefas como atualização do IIS, atualização de serviços do Windows etc.

    • 0

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

  • Como determinar se um Índice é necessário ou necessário

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve