[firebase-br] Migrando de 2.03 para 2.1.1

Eduardo Bahiense eduardo em icontroller.com.br
Qua Out 29 19:39:33 -03 2008


Olá Welkson

Essas coisa precisam ser rodadas.

Na documentação diz que deve ser rodada somente uma vez (espero que vc 
tenha backup do seu banco).

Quando fui arrumar no meu banco, vacilei e não coloquei  charset na 
string de conexão com o isql e me ferrei até o Adriano Fernandes me 
alertar sobre isso.

De qualquer forma, o que achei melhor de tudo foi o seguinte:

Fui no IbExpert, extraí metadata só de procedures e triggers, dropei 
todas e recriei no banco em 2.1. O IBExpert tem uma opção de extrair com 
CREATE OR ALTER, o que me parece uma boa opção também.

Abs

Eduardo

Welkson Renny de Medeiros escreveu:
> Pessoal,
> 
> Preparei uma máquina para testar a nova versão do Firebird... instalei a 
> versão 2.1 e vi que ele alerta sobre uns scripts que ficam na pasta 
> \misc\upgrade\metadata.
> 
> Iniciei o serviço, conectei ao banco, rodei o script para criação do 
> metadata_charset_create.sql, depois rodei um select * from 
> rdb$check_metadata
> 
> Surge vários registros... quando começo a descer a rolagem aparece o erro:
> 
> Error Message:
> ----------------------------------------
> Cannot transliterate character between character sets.
> Cannot transliterate character between character sets.
> At procedure 'RDB$FIX_METADATA'
> At procedure 'RDB$CHECK_METADATA'.
> 
> Os campos, procedures, triggers, tudo está charset NONE no meu banco. 
> Alguma sugestão para resolver?
> 
> Tentei rodar o seguinte comando:
> select * from rdb$fix_metadata('NONE'); //tentei também com UTF8
> 
> Aparece a mensagem:
> Error Message:
> ----------------------------------------
> Row not found for fetch, update or delete, or the result of a query is 
> an empty table.
> attempted retrieval of more segments than exist.
> action cancelled by trigger (1) to preserve data integrity.
> Cannot update trigger used by a CHECK Constraint.
> At procedure 'RDB$FIX_METADATA'.
> 
> Analisando o código da procedure RDB$FIX_METADATA vejo que em vários 
> momentos ela roda um UPDATE nas tabelas... todas minhas tabelas tem 
> TRIGGERS de LOG... (insert, update, delete)...
> 
> Resumindo: o que ocorre se eu não rodar essas procedures no banco em 
> produção? quais as broncas?
> 
> Obrigado a todos pela atenção.
> 





Mais detalhes sobre a lista de discussão lista