Pergunta

Say I tem um site e um banco de dados desse site hospedado localmente no meu computador (para o desenvolvimento) e outro banco de dados hospedado (para produção) ... ou seja, primeiro eu faço as alterações no db dev e depois eu faço as mudanças ao DB prod.

O que é a melhor maneira de transferir as alterações que fiz no banco de dados local para o banco de dados hospedado?

Se é importante, eu estou usando o MS SQL Server (2008)

Foi útil?

Solução

A maneira correta de fazer isso com o Visual Studio e SQL Server é adicionar um Banco de Dados do Projeto para a solução web app. O projeto de banco de dados deve ter arquivos SQL que podem recriar todo o banco de dados completamente em um novo servidor, juntamente com todas as tabelas necessárias, os usuários procedimentos e funções.

Dessa forma, eles estão incluídos no controle de origem para todo o resto do código também.

Há um Mudanças sub-pasta no banco de dados do projeto onde eu colocar os arquivos SQL que se aplicam quaisquer novas alterações ou adições ao banco de dados para versões posteriores.

O SQL nos arquivos deve ser escrito com adequada "se existe" blocos de tal forma que ele pode ser executado com segurança várias vezes em um banco de dados já atualizados sem erro.

Como regra geral, você nunca deve fazer as alterações diretamente no banco de dados - em vez disso modificar o script SQL no projeto e aplicá-lo ao banco de dados para se certificar de seu código-fonte (os arquivos SQL) é sempre atualizado <. / p>

Outras dicas

Nós fazemos isso no (Ruby on) Trilhos mundo escrevendo "migrações", que captura as alterações feitas na estrutura DB em cada ponto. Estes são executados com uma ferramenta de migração (uma tarefa para ancinho), que também grava em uma tabela DB para que ele saiba se uma migração em particular tenha sido executado ou não.

Você poderia fazer uma estrutura como esta para sua plataforma dev (.net?), Mas acho que em outras respostas para essa pergunta pessoas irá sugerir ferramentas disponíveis para lidar com banco de dados de versão em sua plataforma de desenvolvimento, ou talvez para o seu DB específico .

Eu não conheço nenhum deles, mas confira a lista . Eu vejo um monte de coisas de pagamento lá fora, mas deve haver algo livre. Também verificar isso .

migrar alterações via scripts de alteração escritas por desenvolvedores quando eles têm testado / verificado as suas alterações. (A exceção é se mover grandes volumes de dados.) Todos os scripts são armazenados em um sistema de controle de origem. e pode ser verificada por DBAs.

É o manual, o tempo em algum momento de consumir, mas eficaz, processo seguro e controlado.

Os bancos de dados são muito vital para copiar de dev.

Existem ferramentas para ajudar a criar / verificar esses scripts. Consulte http://www.red-gate.com/ Eu tenho usado suas ferramentas para comparar 2 bancos de dados para criar scripts. Brian

Se as mudanças são pequenas, às vezes eu torná-los com a mão. Para mudanças maiores, eu uso Red Gate 's SQL Compare para gerar scripts de alteração. Estes são e executado no ambiente QA para ter certeza de que eles não quebrar nada verificou-mão. Para grandes mudanças, corremos um backup especial antes de fazer a mudança, tanto em QA e na produção.

Nós costumávamos usar a abordagem fornecido por Ron. Faz sentido para um grande projeto com equipe dedicada de DBAs. Mas se você não tem uma desenvolvedores dedicados que escrevem código só para DB esta abordagem é tempo e recurso caro .

A abordagem de usar RedGate DB comparar também não é bom. Você ainda tem um fazer um monte de trabalho manual você pode pular algumas etapas por engano .

Ele precisa de algo melhor. Esta é a razão pela qual nós construímos a "Agile DB Recreation / Import / Reverso / Export função" A ferramenta é gratuita.

Vantagens: os desenvolvedores usar quaisquer ferramentas preferidos para desenvolver DEV DB. Em seguida, eles correm o DB Rire e faz reverseengeniring DB (tabelas, vistas, proc stor, etc) e exportação de dados em arquivos XML. arquivos XML você pode manter a qualquer sistema de repositório de código.

E o segundo passo é executar DB Rire mais uma vez para gerar scripts diferença entre estrutura e dados em arquivos XML e em Produção DB.

Claro que você pode fazer tanto iterações como você precisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top