Re: Connecteur mysql_fdw : probl ème de "cache"

bernard schoenacker <[email protected]> Wed, 14 Dec 2016 16:20:31 +0100
Newsgroups gmane.comp.db.postgresql.french
Message-ID <[email protected]>
On Wed, 14 Dec 2016 15:20:23 +0100 (CET)
Bertrand ROBERT <[email protected]> wrote:

> Bonjour, 
> 
> Je travaille sur une potentielle migration de MySQL à PostGreSQL. 
> Dans les solutions envisagées, nous regardons du côté du connecteur
> mysql_fdw pour nous aider à migrer en douceur. 
> 
> Voici mon jeu de test : 
> - côté MySQL, j'ai une table "matable" qui contient deux colonnes
> (monid, mavaleur) et des données toutes simples : '1', '2.129' 
> '2', '2.129' 
> '3', '2.129' 
> etc 
> 
> - côté PostGreSQL, j'ai créé une foreign table de "matable" et
> j'arrive bien à interagir dessus (select, insert, update, delete)
> depuis PostGreSQL 
> 
> Si je réalise les opérations suivantes : 
> - je me connecte à PostGreSQL avec psql 
> 
> - je lance un "select * from matable;" depuis PostGreSQL : 
> => la connexion s’établit sur MySQL et j'ai bien la liste des lignes
> qui se trouvent dans "matable" de MySQL => je maintiens cette
> connexion PostGreSQL ouverte '1', '2.129' 
> '2', '2.129' 
> '3', '2.129' 
> etc 
> 
> - je lance un "update matable set mavaleur = '3.229';" depuis MySQL
> et je vérifie les valeurs côtés MySQL : '1', '3.129' 
> '2', '3.129' 
> '3', '3.129' 
> etc 
> 
> - je relance la lecture depuis PostGreSQL avec la même connexion
> qu'au début : '1', '2.129' 
> '2', '2.129' 
> '3', '2.129' 
> etc 
> 
> => PostGreSQL ne voit pas les nouvelles valeurs 
> 
> Après analyse, j'ai découvert : 
> - que la connexion établit de PostGreSQL vers MySQL ressemble à du
> persistent : elle reste ouverte tant que la console psql est ouverte
> ou pendant X secondes 
> - que le même update lancé depuis PostGreSQL sur la table MySQL
> permettait à PostGreSQL de voir les bonnes valeurs avec un select
> (3.129) 
> - quelque soit le moyen utilisé, si la connexion de PostGreSQL à
> MySQL est une nouvelle connexion, les données affichées seront les
> bonnes (3.129) 
> 
> Pour forcer la connexion de PostGreSQL à MySQL, plusieurs moyens : 
> - rouvrir une connexion à PostGreSQL en parallèle ou en fermant la
> connexion d'origine 
> - redémarrant MySQL 
> - redémarrant PostGreSQL 
> - attendant X secondes que la connexion de PostGreSQL vers MySQL
> tombe en timeout 
> 
> J'ai cherché dans le peu de documentation du connecteur et je n'ai
> pas l'impression qu'il soit possible de désactiver le côté
> "persistant" de la connexion PostGreSQL -> MySQL mais j'ai peut être
> loupé quelque chose. 
> 
> J'ai donc plusieurs questions : 
> - est-ce que quelqu'un sait s'il est possible de désactiver ce côté
> persistant / faire tomber le timeout à 0 ? 
> - quelle est la valeur de ce timeout ? 
> - est-ce qu'il est possible de demander à PostGreSQL à ne pas
> utiliser ce qui ressemble à du "cache" ? 
> 
> J'en profite pour poser une autre question. 
> J'ai remarqué qu'une transaction côté PostGreSQL n'était pas gérée
> côté MySQL. Si je démarre une transaction sur PostGreSQL, que je fais
> deux updates (un dans une foreign table MySQL, un dans une table
> native PostGreSQL) et que je rollback : 
> - l'update est annulé sur la table native PostGreSQL 
> - l'update est commité sur la table MySQL 
> 
> J'ai essayé de jouer avec autocommit des deux côtés mais rien y fait
> et il semble que la gestion des transactions ne soient pas intégrée
> aux connecteurs FDW. La question est donc : est-ce que quelqu'un sait
> s'il est prévu de gérer les transactions dans une future version de
> PostGreSQL et, si oui, dans laquelle ? 
> 
> Je vous remercie d'avance et vous souhaite une bonne journée. 
> 
> Cordialement, 
> Bertrand ROBERT 
> 
bonjour,

    il existe plusieures manières de migrer les tables de MySQL vers
    PostgreSQL :

    https://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL

    https://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#MySQL

    en passant par ruby :

    https://t37.net/comment-convertir-une-base-de-donnees-mysql-vers-postgresql-pour-les-manchots.html

    petit topo linuxfr :

    https://linuxfr.org/forums/programmation-sql/posts/migrer-de-mysql-vers-prostgre


    liste des paquets nécessaires :

    cl-pgloader - extract, transform and load data into PostgreSQL
    pgloader - extract, transform and load data into PostgreSQL


    slt
    bernard


--
bernard schoenacker <[email protected]>


--
Envoi via la liste pgsql-fr-generale ([email protected])