|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour à tous,
Je dois migrer une base Interbase 6.0 en FireBird 2.5 Quelques questions relatives aux réglages, dans l'état de l'art : - SQLDialect - CharacterSet - Role - concernant le SQLDialect, je n'ai aucune procédure stockée et je peux aisément batcher mes tables via un programme Delphi si l'opération de backup/restore entre Interbase et Firebird ne marche pas - concernant le CharacterSet, je voudrais me tourner vers de l'UNICODE, même si pour le moment je n'en ai pas le besoin - concernant le Role, je n'ai pas d'idée précise sur les fonctionnalités apportées par cette propriété |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 726 ![]() |
Si c'est vous qui avez créé la base interbase 6 ou qui avez migré vers interbase 6. Vous avez du choisir le dialect 3.
Et donc il n'y a pas de changement de dialect. Sous Fb2.5 utilisez le dialect 3. Lorsque j'ai migré de fb 2.0 (ou1.5) vers 2.1 j'ai du respecter la procédure décrite dans le sous rétertoire de firebird misc\upgrade\metadata j'imagine qu'il vous faudra y passer également avec fb2.5. Avant fb2.1 tout ce qui est métadata était sans charactere set, ce qui n'est plus le cas. La procédure en question vous permet d'identifier les éventuelles problèmes et vous aide à les corriger. Il est vrai que j'ai beaucoup de PS mais il n'y a pas que ca qui peut poser problème, les descriptions d'objets par exemple... Pour ce qui est de l'UNICODE, vous dites ne pas en avoir le besoin, donc je serai vous je commencerai par regarder si les applications que vous développez sont prêtes pour l'unicode. Par exemple sous Delphi 6,7 les composants orientés données ne gèrent pas l'UNICODE en natif. Et donc au final d'estimer le travail pour les passer en unicode . Dernier point, les ROLES, c'est pour gérer la sécurité de votre base. Lorsque vous créez un utilisateur il faut lui donner les droits sur chacun des objets qu'il aura droit de manipuler. (Ce qui regrésente un certain nombre de grant ...) Si la personne part ou n'a plus les même droits et est remplacer par une autre il faut retirer les droit à l'ancienne et donner les droits à la nouvelle ce qui représente encore une fois un certain nombre de grant (et si ce n'est pas une procédure automatique avec le risque d'erreur...)... Les ROLEs permettent de gérer plus simplement les droits. Au lieu de donner les droits d'accès aux différents objets à une personnes vous les donnez à un ROLE. Voyez ces roles comme un groupe. Vous devez créer et donner les droits à une nouvelle personne, il vous suffit de lui attribuer le ROLE. Plusieurs personnes peuvent utiliser un même ROLE. Et pour retirer les droits d'une personne il suffit de lui retirer son droit d'utiliser le ROLE. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
Bonjour
Je n'ai pas créé la base Interbase source. Par contre j'ai bien crée la base Destination sous Firebird 2.5 en SQLDialect 3 et CharacterSet WIN1252. Lorsque je fais un backup en mode Transportable Format et que je restaure sous FireBird en mode Replace Existing Database tout semble OK. A l'ouverture de la base j'ai le message d'erreur suivant : Databse SQL Dialect 1 does not support rerefence to TIME datatype. Comment dois je faire pour batcher ma base Interbase vers Firebird. Car je n'ai 'que' 142 tables popur un volume de 800 Mo. J'ai bien tenté d'exporter en SQL le contenu de ma base Source et de rejouer le script d'insertion dans la base destination. Mais pour les grosse stables, le temps de traitement est impensable, sachant que j'ai 6 bases de données (en volumétrie à peu prés similaire) à convertir. Je prends toutes les solutions. Merci pour votre aide. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() |
La seule solution que j'ai trouvé pour le moment est de faire un
GFIX -sql_dialect 3 sur la base. Peut on être certain que cela n'a en rien altéré les données contenus dans la base ? |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 726 ![]() |
Cela dépend du type de vos données...
Le gfix ne convertie pas une base dialect 1 en dialect 3 il ne fait que changer la valeur du dialect. Autrement dit vous risquez bien de corrompre votre base. Notamment si vous avez des données de type DATE ou numeric/Decimal avec une précision supérieur à 9 NUMERIC(10,2) par exemple. Il y a 2 méthodes pour changer de dialect. La première consiste à recréer une base en dialect 3 et utiliser un programme qui va transférer toutes les données. La seconde 'manuelle' et est plus compliquée et risquée si vous vous trompez est décrites dans "Migration Guide (IB 5.x and below to IB 6.0)" http://firebirdsql.org/index.php?op=doc#category_9. Vous pouvez également consulter ce sujet http://www.developpez.net/forums/d10...ment-dialecte/ |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() |
OK je vais donc m'orienter vers la solution 1 même si cela met du temps, cela garantira l'intégrité des donnes me semble t il ...
Merci pour vos réponses éclairées |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com