On Sun, 24 Nov 2002, Yann Forget wrote:

> Je cherche un script pour convertir une base MySQL en PostgreSQL et
> vice-versa. Quelqu'un aurait-il ça sous la main, ou saurait-il où je peux le
> trouver ?

Elle est complexe cette base ?  La dernière fois que j'ai fait ça, j'ai
re-créé et re-réfléchi les structures de données, car vu le peu de choses
que MySQL supporte et la façon dont certaines choses sont implémentées
on a vite mal à la tête.

Par contre, les données MySQL, on peut les importer assez facilement dans
PostgreSQL, avec juste quelques bémols sur l'échappement des guillemets,
et éventuellement via une VIEW et une RULE pour assurer l'intégrité ou des
conversions directement dans la base de données.

Mes différentes rencontres avec MySQL ont été assez mauvaises: chez un
client, j'ai déjà vu des bases avec des identifiants uniques mais des
tuples multiples: la base de données avait dû se corrompre d'une manière
où d'une autre. Chez un autre client, même `mysqldump' refuse en ce moment
de sauvegarder en raison d'incohérences. Et le dump généré en excluant les
tables problématiques n'est pas restorable:  la solution trouvée est de
sauvegarder directement de /var/lib/mysql, mais sur un MySQL stoppé sur un
slave répliqué (et il m'a fallu écrire un script de redémarrage de
surveillance et redémarrage de la synchronisation car elle s'arrête de
temps en temps). 

Plus je joue avec MySQL plus je vois que c'est un simple jouet:  rapide
pour faire des requêtes simples en lecture, et c'est tout.  Mais bon ça
c'est de la politique, il y a plein d'applications où MySQL peut
probablement rendre service et où son support partiel peut suffire.
 
Une conversion PostgreSQL -> MySQL réellement automatique est impossible
dans l'état actuel, sauf si l'on utilise ni procédure stockées, ni
triggers, ni règles, ni contraintes d'intégrité non minimalistes, ni view,
ni select imbriqué, ni transaction sérialisées, etc.

En bref, moi je ne vois pas comment construire quoi que ce soit de solide
avec MySQL: mais bon, il est vrai que j'ai une vision assez spéciale de
l'informatique, dans laquelle on passe par diverses phases de conception
avant de créer une structure SQL, et dans laquelle on déplace une grande
partie du traitement (validation) dans la base de données plutôt que dans
un programme C, Perl, C++ ou PHP: cette vision ne semble pas être
très répandue.

Mais regarde quand même:

   http://webmasterbase.com/article/529




--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.

Répondre à