segunda-feira, 17 de junho de 2013

Backup da Kb

Todos conhecemos muito bem o significado de Genexus Knowledge Base, visto que todo projeto Genexus é uma, mas poucos a respeito dos elementos que temos a nossa disposição em uma Kb.  E uma informação significativa, que fica meio obscura diante da estrutura da ferramenta é a simplicidade com que podemos restaurar um certo projeto por meio do próprio Banco de Dados da Kb.

Banco de Dados

A partir da versão Genexus X os projetos passaram a ser criados obrigatoriamente num banco de dados, mais especificamente no SQL Server, sendo que o próprio instalador do Genexus já adicionava uma versão 'Express' para que a ferramenta trabalhasse, isso caso não houvesse um banco desses instalados no equipamento. 

O fato é que a partir dessa versão a Kb passou a ser armazenada em um banco, não mais em arquivos no diretório do projeto, situação que inicialmente desagradou muita gente que, por falta de costume, diga-se de passagem, não gostou muito dessa ideia de ter que instalar um SQL Server, mas convenhamos esse mecanismo trouxe uma nova visão e recursos sobre o projeto.

Recriando a Kb através do BD

Um dos pontos positivos que o Banco de Dados trouxe para o projeto foi a possibilidade de se recriar totalmente certo projeto a partir do arquivo MDF/LDF.  Situação importante, principalmente em casos da quebra do computador, e claro, a falta de um backup do projeto.

Uma vez que o projeto encontra-se armazenado no banco de dados, podemos recriá-lo mediante uma pequena lista de ingredientes:
  1. O arquivo MDF e LDF do banco
  2. Um arquivo nome_do_projeto.gxw, cujo conteúdo é nenhum (vazio)
  3. Um arquivo knowledgebase.connection, contendo algo como:
<ConnectionInformation>
 <DBName>GX_KB_Curso</DBName>
 <IntegratedSecurity>True</IntegratedSecurity>
 <ServerInstance>SERVIDOR_BD</ServerInstance>
 <CreateDbInKbFolder>True</CreateDbInKbFolder>
 <Directory>Z:\NovaPasta\</Directory>
 <DataFile>GX_KB_Curso.mdf</DataFile>
 <LogFile>GX_KB_Curso_log.LDF</LogFile>
 <HostName>SERVIDOR_BD</HostName>
<ConnectionInformation>



Em negrito o caminho para a pasta onde o projeto será recriado.

Em seguida executar as seguintes operações:
  1. Anexar o BD ao SQL Server (Database - Attach), numa operação chamada de Attach.
  2. Abrir o arquivo gxw através do Genexus na operação File - Open Knowledge Base
O resultado é a reconstrução do projeto, claro que você deverá recriar o environment por meio da execução do Gx.


Esse recurso permite a realização do backup dos projetos Genexus simplesmente pelo Banco de Dados. Em caso de utilização do GxServer, o mesmo recurso pode ser utilizado, trazendo segurança aos projetos administrados pelo servidor.

Cuidado porém com o detalhe da informação Directory que se encontra no arquivo knowledgebase.connection, pois se não apontar para o novo local de criação do projeto, causará um erro Knowledge Base Directory change detected.



Cujo efeito será a tentativa de se recriar a base de dados, portanto, se aparecer uma mensagem assim você estará percorrendo um caminho incorreto para realizar a restauração e provavelmente tem a ver com essa propriedade directory.


PS: ver http://www.genexando.com/2013/06/backup-da-kb-ii_19.html