J’effectue aujourd’hui le conversion d’une base de données Firebird 2.0.3 pour la passer en 2.1.1.La base de données pèse en FDB : 763 Mo et en FBK : 563 Mo. Voici quelques notes concernant ma manipulation et les problèmes que j’ai pu rencontrer :
-
- Tout d’abord, j’ai pris une copie du FBK que j’ai essayé de restaurer sur mon portable sous Windows XP Pro, où j’ai déjà la version 2.1.1 d’installée.
-
- Le premier problème que j’ai rencontré c’était le message suivant en essayant de restaurer :
gbak:restoring data for table BORDEREAU Failed: Expression evaluation not supported.Value exceeds the range for valid dates.
J’ai donc retroussé mes manches et j’ai regardé dans la base de données. Il s’est avéré qu’il y avait effectivement des champs date dont la valeur était incorrecte. Avec DBX ils s’affichaient comme « 00/00/00 ». Avec la requête suivante j’ai pu les isoler :
select code, cast(date_livr as char(20)), date_livr,cast(date_exp as char(20)), date_exp from bordereau\nwhere cast(date_livr as char(20)) starting with '-'or cast(date_exp as char(20)) starting with '-'
Cela a bien fonctionné dans mon cas car en castant en char(20) les dates incorrectes (dont le jour était négatif !!) s’affichaient comme « -26-JAN-0 ». Des dates 26 jours avant l’an 0 quoi… De quoi offusquer très justement le moteur Firebird. Au fait concernant ce problème, j’ai rencontré une explication de Dmitri Yemanov sur le site de suivi Firebird.
- Le premier problème que j’ai rencontré c’était le message suivant en essayant de restaurer :
-
- J’ai rencontré ce type de problème avec des vieilles données dans différentes tables. J’ai trouvé plus simple et plus efficace comme moyen pour rechercher les erreurs : je cherche les enregistrements dont l’un des champs date est inférieur, mettons, au 1 janvier 1950. Dans mon cas cela identifiait bien les dates erronées.
-
- Dans le fichier /opt/firebird/misc/upgrade/metadata_charset.txt il y a un avertissement assez intimidant concernant des bugs dans la translittération des BLOBs avant la version 2.1. Une procédure est fournie pour tenter de rectifier le tir. J’ai eu le cas d’une autre base de données où cela ne m’avait posé aucun problème (je n’avais du coup même pas passé la procédure). Peut-être que c’est parce que nos bases sont toujours créées en character set « NONE » ?
-
- Il y a une nouvelle ODS (format de fichier physique de la base) dans cette version de Firebird. On passe de l’ODS 11 à l’ODS 11.1. Pour cette raison, et afin de pouvoir tirer parti de toutes les nouveautés de la version 2.1 il faut faire un « backup/restore » de la base. Sinon la nouvelle version lira bien les versions anciennes ODS 11 mais les nouveautés ne seront pas disponibles.