Skip site navigation (1) Skip section navigation (2)

Re: [pgsql-fr-generale] Migration de base de donnée MSSQL -> PGSQL

From: temsa <temsa(at)free(dot)fr>
To: Jean-Paul ARGUDO <jean-paul(at)argudo(dot)org>,pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: [pgsql-fr-generale] Migration de base de donnée MSSQL -> PGSQL
Date: 2004-09-20 13:17:28
Message-ID: 414ED868.2090707@free.fr (view raw or flat)
Thread:
Lists: pgsql-fr-generale
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jean-Paul ARGUDO wrote:

| temsa wrote:
|
|> | Pour que tout cela marche, il vous suffit simplement de retirer
|> les | " (doubles quotes) de vos sources SQL...
|>
|> c'est exactement ce que j'ai fait, a ceci près que j'utilise un
|> lnagage (à la con, du moins pour ça) qui ne stocke pas ses
|> sources en clair, mais à moitié en bianire: powerbuilder...
|>
|> | | Pour se faire, en perl, -par exemple: | | perl -i -pe
|> 's/"//g' *.sql
|>
|> J'ai même  utilisé plus compliqué afin de ne retirer  à peu près
|> que les appels au champs et aux tables...
|>
|> perl -pi.bak -e 's/"([[:alnum:]_]+)"/$1/g'
|>
|> mais ceci je l'ai fait dans un export de ma base! parceque j'ai
|> tenté de garder ma base en majuscule, ça ne suffit pas, il faut
|> poutr pouvoir utiliser TOTO au lieu de "TOTO" dans une requete,
|> que toto soit en minuscules dans la base
|>
|> | retirera toutes les doubles quotes de vos sources SQL .. |
|> (attention, j'ai bien dit TOUTES! :)...) | | Au final, votre SQL
|> sera bien plus lisible, sans toutes ces doubles | quotes, non?
|>
|> ça je suis plutôt d'accord, mais là n'est pas ma question. il m'a
|> fallu plus d'une semaine pour passer  a peu près 60% de l'appli
|> pour postgres. Pendant ce temps la, les développeur ont avancés
|> sur pas mal de fichiers, et je ne me vois pas utiliser diff avec
|> des fichiers binaires
|
|
| Plusieurs remarques:
|
| * laissez la liste PostgreSQL Fr en copie! Le débat interresse
| surement d'autres personnes;

oups, j'avais pas vu!

|
| * je n'avais fait que deviner votre problème, vous auriez pu
| d'emblée nous expliquer tout cela :)

oui, mais je voulais une reponse simple a une question simple. la
reponse est, si je ne m'abuse, que ce n'est pas possible

|
| * je ne comprends pas bien le planing de votre intervention? Si je
| comprends bien, c'est une migration et en même temps ça code d'un
| autre côté? Ce n'est pas trop dans les règles de l'art. En théorie,
|  on arrête tout dév, on migre, puis on continue à developper. Ou
| alors, vous le faites sur une branche stable de votre soft (qui
| n'est pas censée évoluer, donc)??
|
A vrai dire, si je dois aller dans le detail, je vais a peu pres tout
vous dire.

Je suis rentré en stage dans une société, et l'un de mes objectifs
etait d'etudier voir de faire une moulinette pour migrer la grosse
appli de la société vers une base disponible sous Linux.

Ils n'ont aucun outil de gestion de version, mais en fait, c'est aussi
parcequ'il n'y a plus que 2 developpeurs (avant la boite faisait
environs 20 personnes, voir plus) . La boite a manquée couler parceque
l'ancien patron n'etait pas très recommandable, il a fait beaucoup de
magouilles, et s'est faché avec beaucoup de clients. Le nouveau patron
régularise tout et m'a l'air bien parti pour remonter la boite
correctement.

De plus, cette boite, c'est le bordel intégral :)

En gros, il y a une version par client (je vous dis pas la merde pour
corriger un bug... il faut le faire 12 fois!), je trouve ça
particulièrement ingérable, et je leur ai qd même parlé de
cvs/arch/subversion/bitkeeper bien que je ne sois pas expert, je pense
que ça pourrait les aider, même si je ne sais pas si c'est capable de
gérer des fichiers à moitier binaire (je pense, mais bon j'en sais
rien, jamais testé).

J'ai bossé sur une version considéré comme stable, et j'ai demandé au
devs de ne plus mettre de guillemet, ce qu'ils ont fait et qu'il
continuent à faire.

Leur base de données est très rustre, il n'y a aucune procédure
stockée (c'est bien pour le portage, mais pas top du tout pour la
lisibilité des programmes) mais j'ai vu avec eux comment en faire et
ils vont peut être s'y mettre (le SQL et les BDD, ils ont appris sur
le tas sans formation...). Personellement, les proc stock  je les ai
découvert avec postgres, même si mon frère qui est un dieu de la base
de donnée (son job en gros c'est optimiser les bases de données des
clients) et m'en avais un peu parlé, je ne l'avais pas vu en cours, et
je n'avais jamais eut a en manier pour de simple sites web.

La principale raison pour laquelle leur BDD n'a pas de proc stock,
c'est qu'elle est assez récemment migrée de AS/400 vers MSSQL, et que
ça n'a pas été fait d'une manière terrible si j'ai bien compris. D'où
des noms de tables et de champs en majuscule et limité a 11
caractères, avec une convention de nommage obscure disparue avec les
développeurs qui ne font plus partis de la société.

De plus, il n'y a aucun schéma (MCD par exemple) de la BDD. Alors bon
comme vous le voyez, les "Règles de l'Art", c'est pas trop ça là bas :P

Aussi, autre illustration du probème, c'est que les ordi etaient des
antiquités (en arrivant j'ai eut un p3-450 avec NT4 et 64 Mo de
RAM...!!! j'ai du me battre un peu ac la technique pr avoir 128Mo...
Et le pire c'est que tout le monde avait ce genre de postes)

J'essaie autant que je peux de les aider, même si mon stage est
désormais fini(un peu trop tôt d'ailleurs puisqu'il viennent
d'entèrement renouveler les PCs...). De toute façon j'y retourne en
février car il me reprennent en Projet de Fin d'Etude

| * faites passer le mot à vos développeur et votre probleme se
| résoud tout seul non? « Pas de doubles quotes dans le SQL, merci
| les gars »;

C'est fait ça

|> C'est pour ça que je cherche une solution plus simple, consistant
|> a configurer la base pour que ça fonctionne directement. C'est
|> plus simple tout de même,car le portage est vraiment long, alors
|> qu'il pourrait prendre qualques heures au plus avec cette simple
|> fonction!
|
|
| Si je comprends bien, vous attendez de PG qu'il fasse fi des
| doubles quotes?...

non, je veux qu'il fasse ni plus ni moins que MSSQL dans ce domaine:
quand il n'y a pas de table toto mais une TOTO, qu'il se dise que ça
pourrait bien être la table qu'il faut!

|
| Sincèrement je ne vois qu'une solution: hacker PG, trouver le bout
| de code qui traite les doubles-quotes dans la requete SQL, et
| simplement la by-passer.

mouais pas exactement non plus, mais je vois ce que vous voulez dire,
si je fais un mail ici, c'est pour savoir si je peux eviter ça

|
| Cela nécessite qques connaissances en C, et que vous sachiez
| compiler PG.

ca devrait pouvoir se faire, mais si je pouvais eviter...

|
| Le *gros* hic, c'est que vous devrez maintenir votre vérue par
| rapport aux évolutions de PostgreSQL.
|
| Alors, au final, je vous conseille de rédiger un e.mail explicatif
| de votre problème, en anglais, sur la liste des hackers de
| PostgreSQL, en leur demandant de bien vouloir implémenter votre
| fonctionalité dans PG.

l'ideal serait même que je fournisse un patch, j'ai bien compris

|
| Par exemple, elle serait liée à une clé dans le fichier
| postgresql.conf, et aurait une syntaxe de ce type:
|
| ignore_double_quotes = true

ouais tout a fait, plues exactement comme ça:
ignore_case=true

|
|
| Je pense que cela solutionnerait votre problème, et pourrait
| intéresser toutes les personnes qui migrent depuis M$ SQL.

tout a fait! Et ça ouvrirai des "marchés" plus facilement a pg :)

|
|
| Au plaisir de vous lire,
|
|
| Cordialement
|
Vous aussi :)

| PS: je jette un coup d'oeuil dans les sources, des fois que ce soit
|  un truc facile à faire, je vous envoie le patch :-)
|
Merchi :) :)
Je vais faire de même une fois que j'aurais fini mon rapport de stage!

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBTthni2j5R/FksdIRAnPxAJ4mDndq6VNngM3WfMj9o572mCUSKgCeMqOI
Ugv5biUfjv/hZGn0kETGDxQ=
=IWyf
-----END PGP SIGNATURE-----


In response to

Responses

pgsql-fr-generale by date

Next:From: temsaDate: 2004-09-20 15:14:29
Subject: Re: [pgsql-fr-generale] Re: [pgsql-fr-generale] Re: [pgsql-fr-generale] Migration de base de donnée MSSQL -> PGSQL
Previous:From: ToffeDate: 2004-09-20 13:03:20
Subject: Re: [pgsql-fr-generale] Re: [pgsql-fr-generale] Migration de base de donnée MSSQL -> PGSQL

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group