[firebase-br] Migração de bancos

Edson Marco edmafer em gmail.com
Ter Maio 5 11:02:37 -03 2009


Infelizmente não é tão simples. Hoje temos o maior sistema para igrejas
católicas do Brasil, com mais de 600 paróquias utilizando-o e em todo
território nacional. Então eu preciso tentar automatizar isto. Ir ao cliente
não é uma opção.

É.. eu também não gosto de mecher com os padrões dos bancos, mas herdei
isto. E acho que não foi direcionado a mim, mas eu não acho que o Firebird
não presta.

Não sei o que o desenvolvedor que deu inicio ao projeto tinha na cabeça, mas
ele por algum motivo gostou disto e o fez.

E como todo o sistema trabalha nesta estrutura de nomes de campos com
caracteres especiais. Alterar todo o sistema não é uma opção viável.

Então busco uma solução no banco. Há alguma, ou estou preso a esta versão
(por causa do collate)? Não entendo muito bem sobre o collate no firebird,
mas se for possível alterar as tabelas das versões mais novas do Firebird,
eu as faço também (para não ter que mecher no sistema inteiro).

2009/5/5 Eduardo Jedliczka <jedyfb em gmail.com>

> Você não vai conseguir migrar este banco.... nunca deve-se alterar as
> tabelas de sistema !!! você pode FACILMENTE perder um banco de dados! E
> depois ficar falando que o Firebird não presta... (veja se alguém tem
> coragem de alterar uma tabela de sistema do Oracle)
>
> Como, aparentemente, você ainda consegue conexão com o mesmo, sugiro que
> extraia o metadata dele (via ibexpert, ou algum programa do gênero)
> recrie o banco na nova versão do FB, e faça um PUMP dos dados.
>
> Se você tem um programador a sua disposição sugiro que ele mesmo faça um
> programa que, tabela por tabela,  leia todos os campos do banco
> "bichado" e grave no banco "novo", assim poderá tratar qualquer problema
> de charset que exista.
>
> Abraço
>
> Eduardo
>
> Em Ter, 2009-05-05 às 09:05 -0300, Edson Marco escreveu:
>
> > Pessoal é uma migração de bancos 1.5 para 2.1 (ou mesmo 2.0). Sei que
> esta
> > pergunta já foi feita diversas vezes aqui. Mas minha situação é um pouco
> > diferente (eu mesmo não tinha visto nada parecido).
> >
> > Na empresa que eu trabalho, há um sistema (feito em delphi para titulo de
> > curiosidade) que roda com o firebird 1.5.2.4731, e com collate br.
> >
> > O desenvolvedor que criou o sistema fez uma alterações nas tabelas de
> > sistema para que seja possível utilizar nomes de campos (tabelas,
> procedures
> > e views) acentuados.
> >
> > DEFAULT CHARACTER SET ISO8859_1;
> >
> > CREATE DOMAIN CAMPOTABELA AS CHAR(31) CHARACTER SET NONE;
> >
> > update RDB$RELATION_FIELDS set
> > RDB$FIELD_SOURCE = 'CAMPOTABELA'
> > where (RDB$FIELD_NAME = 'RDB$FIELD_NAME') and
> > (RDB$RELATION_NAME = 'RDB$RELATION_FIELDS')
> > ;
> >
> > update RDB$RELATION_FIELDS set
> > RDB$FIELD_SOURCE = 'CAMPOTABELA'
> > where (RDB$FIELD_NAME = 'RDB$RELATION_NAME') and
> > (RDB$RELATION_NAME = 'RDB$RELATION_FIELDS')
> > ;
> >
> > update RDB$RELATION_FIELDS set
> > RDB$FIELD_SOURCE = 'CAMPOTABELA'
> > where (RDB$FIELD_NAME = 'RDB$FIELD_SOURCE') and
> > (RDB$RELATION_NAME = 'RDB$RELATION_FIELDS')
> > ;
> >
> > update RDB$RELATION_FIELDS set
> > RDB$FIELD_SOURCE = 'CAMPOTABELA'
> > where (RDB$FIELD_NAME = 'RDB$QUERY_NAME') and
> > (RDB$RELATION_NAME = 'RDB$RELATION_FIELDS')
> > ;
> >
> > update RDB$RELATION_FIELDS set
> > RDB$FIELD_SOURCE = 'CAMPOTABELA'
> > where (RDB$FIELD_NAME = 'RDB$BASE_FIELD') and
> > (RDB$RELATION_NAME = 'RDB$RELATION_FIELDS')
> >
> > Tá... agora o problema é que eu não consigo migrar a base, mas o pior de
> > tudo é que não é possível nem fazer manutenção desta. Um Gbak/Restore é
> > impossível, ele sempre da erro.
> >
> > Tem alguma versão especifica (da 2.0 ou 2.1) para que eu possa migrar, ou
> > podem indicar alguma literatura que possa me auxiliar nisto?
> >
> > Obrigado.
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
/*
* Edson Marco Ferrari Junior
* edmafer em edmafer.com.br
* http://www.edmafer.com.br
*/



Mais detalhes sobre a lista de discussão lista