MSSQL Substituir Banco de Dados no Live Web App

2

Eu tenho um aplicativo da web que está atualmente ativo. Eu tive a necessidade de fazer grandes modificações no banco de dados e agora preciso substituir o atual.

Minha instância do SQL de desenvolvimento não é a dinâmica. Eu costumo fazer um backup do novo banco de dados, explodir o antigo e restaurar o meu atualizado. Mas agora tenho dados que preciso preservar.

A maioria das tabelas atuais foram alteradas, em que colunas extras foram adicionadas, todas as colunas existentes ainda estão lá e inalteradas.

Eu tenho acesso ao Management Studio.

Qual é o caminho certo para fazer isso?

    
por Jason 13.03.2010 / 09:53

1 resposta

2

O "caminho certo" para fazer isso é tratar qualquer alteração em seu banco de dados durante o desenvolvimento como apenas temporário e compilar uma lista de scripts de construção de banco de dados para que você possa reconstruir seu novo esquema em seu banco de dados de produção. Quaisquer alterações feitas devem ser armazenadas em um script de upgrade SQL vinculado à versão do banco de dados (1.0, 1.1, 1.2 ...) ou, melhor ainda, colocadas em um repositório de código-fonte para controle de versão ao lado do código do software. Quando você quiser atualizar seu banco de dados de produção, execute a sequência de scripts de atualização para atualizar o banco de dados para a versão mais recente.

Às vezes, você pode gerar os scripts de alteração depois de trabalhar no banco de dados de desenvolvimento no Management Studio clicando com o botão direito do mouse em uma tabela ou procedimento armazenado e selecionando "Script para". Isso gerará uma instrução alter ou create que pode ser usada para construir seus scripts de atualização. Depois de concluir todos os scripts de atualização, copie o banco de dados de produção para sua caixa de desenvolvimento e teste a atualização para garantir que tudo funcione. Então, quando você estiver pronto para atualizar o sistema ativo, crie um backup e, em seguida, execute os scripts no servidor de produção.

A alternativa é gerar um banco de dados vazio com o esquema correto e, em seguida, copiar todos os dados para o banco de dados em branco. Para um esquema complexo, isso geralmente é difícil de ser executado e o processo pode exigir tempo de inatividade significativo, pois o uso de scripts de atualização pode ser feito com o mínimo de tempo de inatividade.

Para obter mais informações, consulte esta pergunta sobre gerenciamento de banco de dados versões e atualizações .

    
por 13.03.2010 / 22:04