domingo, 18 de outubro de 2009

AdventureWorks: Só o MDF!!!

"Pra quê simplificar se você pode complicar". Criaram um projeto no Codeplex pra instalação dos bancos AventureWorks, um conjunto de exemplos que a Microsoft começou a distribuir com o SQL Server 2005. Baixei o "troço". Tem lista de pré-requisitos - pra instalar uns BD´s de exemplo!!! E tem que ter "FILESTREAM" habilitada, o que - depois de muito apanhar - eu fiquei sabendo que não tem como habilitar na minha instalação: um SQL Server 2008 Express 32 bits em um sistema operacional de 64 bits. "By design", dizia um post no blog de um cara do time do SQL Server da M$. FILESTREAM não roda em WoW - Windows On Windows, i.e., aplicações de 32 bits rodando sobre uma emulação de um Windows 32 bits num Windows de 64 bits. A pergunta óbvia, já que existe uma versão 64 bits do SQL Server Express, é por que eu não instalei essa versão. Sei lá. Tava com sono. Tava distraído. Tava trocando a fralda da Júlia enquanto baixava o SQL Server Express.

Bem, precisei do "troço", aí baixei e instalei. O "troço" cria um monte de sub-diretório, instala uns scripts que criam a estrutura do banco, vazia, e depois carregam - via o tal de FILESTREAM - um monte de arquivos CSV nas tabelas do banco. Caraca, isso é que é complicar o que é simples. E um .BAK com um backup do banco, ou um MDF pra poder anexar o banco ao servidor, nada.

Acho que o tal do time que tá trabalhando no projeto do Codeplex deve ter alguma ótima razão pra criar um projeto de setup pra isso (tomara!!!). Mas depois de perder a paciência com esse "troço", resolvi dar um chute: baixei, lá do Codeplex mesmo, o projeto de setup do AdventureWorks da versão *2005* do SQl Server. Um MSI que tem dentro os arquivos MDF e LDF do banco AdventureWorks. Pronto! Simples. Descompactei o MSI, e anexei o BD ao meu SQL Server Express, que apesar de ser 2008, lê perfeitamente os arquivos do SQL 2005.

Pra baixar o MSI com o banco, vá em http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004. A opção é o "AdventureWorksDB.msi".

Pra descompactar o MSI, rode em um command prompt o seguinte comando:
msiexec -a NomeArquivo.MSI -qb TARGETDIR=caminho_completo_local_descompactação
Pra anexar o BD, abra o Management Studio e, no Object Browser, clique com o botão direito em "Databases" e selecione "Attach..".

Precisa de um projeto de setup pra isso???