Inquiridor
Atualizar objetos do banco

Discussão Geral
-
Boa Tarde!
Tenho algumas duvidas da melhor forma de atualizar as alterações nas bases de dados, como novos campos em tabelas, procedures, etc. Gostaria de saber dos colegas, como é realizado essas atualizações que precisam ser feitas nas bases dos clientes, pois de uma versão para outra de uma aplicação podem haver muitos objetos de banco alterados ou adicionados e gostaria de automatizar as atualizações nas bases.
No Sql Server Management possui algo que pode realizar esse trabalho de forma mais automática?
Eu teria 2 cenários:
1) 1 Banco com Multiplos schemas, onde cada schema possui os mesmos objetos e com isso teria que sempre atualizar todos os schemas.
2) 1 Banco Comum para todas as empresas e 1 banco para cada Empresa, onde as atualizaçòes devem ser feitas em todas as empresas.
Agradeço toda a colaboração.
Cristiano
- Tipo Alterado Cristiano Testai quinta-feira, 30 de abril de 2015 14:38
Todas as Respostas
-
Pelo o que entendi você quer fazer uma reaplicação de dados
banco de dados que replica dados para todas as outras empresas e isso ?
Links exemplos
http://www.linhadecodigo.com.br/artigo/1473/sql-server-replication-passo-a-passo.aspx
https://msdn.microsoft.com/pt-br/library/ms151799.aspx?f=255&MSPPError=-2147217396
https://pessoalex.wordpress.com/2008/11/23/replicacao-de-dados-passo-a-passo-utilizando-o-sql-server-2008/
Atenciosamente,
José Henrique Sabino -
Não José,
Eu quero uma forma de automatizar alteração de novos campos adicionados em tabelas, etc. referente a estrutura do banco.
Ex: Tenho 5 bases de clientes e na nova versão do sistema possui novos campos, alteração de procedure e triggers, etc. Queria ver uma forma prática de autualizar todas as estruturas dos clientes.
-
Cristiano, bom dia.
Na empresa onde trabalho temos duas formas: a primeira é via script mesmo. No fechamento da versão alguém é responsável por pegar todos os objetos de banco de dados alterados e montar um pacote que separamos em DML e DDL (um somente para índices pela demora na execução deste e outro para os demais objetos).
A outra maneira é um programa que fizemos que faz a comparação de um "script da versão" com a base do cliente no momento da atualização. Cada diferença detectada é feita na base do cliente.
Tentamos usar o DataTools do Visual Studio, mas na minha opinião, ele é limitado e eu não aplicaria um dacpac gerado ali numa base de produção (para ambientes de testes é muito bom).
Existem algumas ferramentas de terceiros (ex. Red Gate - SQL Compare) que fazem a comparação de bases com muito mais opções e parametrizações, mas é manual também.
Desconheço uma forma automática de fazer isso até mesmo pelas decisões que devem ser tomadas. Exemplo: algumas alterações em tabela exigem a criação de uma nova tabela, movimentaçao de dados e exclusão da tabela antiga. Você deve deixar isso acontecer no seu cliente? E se a base for grande vai demorar bastante.
Logo automatização disso é um pouco complicado.Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */