[firebase-br] Migração de bancos

Eduardo Jedliczka jedyfb em gmail.com
Ter Maio 5 10:49:00 -03 2009


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.
> 



Mais detalhes sobre a lista de discussão lista