Nosso software tem mais de 20 anos e remonta a bancos de dados como Sybase e SQL 7. Agora vamos ignorar a parte Sybase. Temos muitos clientes antigos usando versões muito antigas de nosso software, variando entre SQL 7 (2001-2002) a SQL 2014 (damos suporte hoje). Tecnicamente falando, nosso software ainda pode ser executado no MSDE 2000. Mas isso não vem ao caso. Obrigamos todos os clientes atualizados a usar pelo menos o SQL Server 2008 R2, mas suportamos oficialmente até 2014. E sim, temos muitos clientes antigos que ainda usam versões antigas de nosso software no Windows '95.
De qualquer forma, vamos à pergunta. Atualmente, sempre que um desses clientes antigos retorna e deseja atualizar, temos que passar por um grande e elaborado processo de atualização. Agora os scripts são a parte fácil. Na verdade, estou apenas finalizando o script de atualização principal mais recente, que oferece suporte à atualização de bancos de dados de nossa versão 2001 (SQL 7) para nossa versão mais recente. O mesmo script acomoda qualquer versão intermediária.
No entanto, antes de poder executar esses scripts, primeiro tenho que levar o banco de dados por uma série de etapas manuais e tediosas. Eu acelerei para este processo:
- Adquirir banco de dados pela internet do cliente
- Restaure o banco de dados SQL 7 diretamente no MSDE 2000 (em uma máquina XP dedicada)
- Aumente a compatibilidade do banco de dados para MSDE 2000
- Banco de dados de backup para um novo arquivo
- Restaure o banco de dados MSDE 2000 diretamente no SQL Server 2008 R2
- Aumente a compatibilidade do banco de dados para o SQL Server 2008
- Banco de dados de backup para um novo arquivo
- Restaure o banco de dados SQL 2008 R2 diretamente no SQL Server 2014
- Aumente a compatibilidade do banco de dados para o SQL Server 2014
- Execute todos os scripts no banco de dados para alterações de software ao longo do tempo
- Banco de dados de backup para um novo arquivo
- Depois de instalar o software para o cliente, restaure o banco de dados pela Internet
Então, como você pode imaginar, muitos clientes recorrentes seriam um trabalho de tempo integral. Suponho que poderia criar algum tipo de automação nesta máquina XP, mas ainda é um processo manual que pretendo eliminar. Não queremos nem precisar adquirir seu banco de dados, e muitos deles não querem que vejamos seus dados.
Existe um método que eu possa distribuir facilmente na máquina do nosso cliente, como parte do instalador, que possa executar automaticamente a atualização de qualquer versão do banco de dados do SQL 7 para o SQL Server 2014?
EDITAR
Para ser um pouco mais claro no processo de instalação, este é um instalador que já temos capaz de restaurar bancos de dados diretamente de 2000 a 2008 R2. Mas precisamos expandir este instalador para acomodar a atualização de bancos de dados que variam de MSSQL 7 a 2014. Pelo que entendi agora, posso pular direto de 7 > 2005 > 2014. Mas ainda é um salto que gostaria de eliminar, se possível. Eu odiaria que nosso instalador carregasse 2005 e 2014 nas máquinas de nossos clientes.