Author: esj@rezo.net
Date: 2007-08-08 19:42:29 +0200 (mer, 08 aoû 2007)
New Revision: 9877
Log:
#209: abstration du Replace de MySQL pour pouvoir exécuter le script d'importation en PG. Ca marche ! Tout le dump.xml.gz spinet fait par SPIP-Mysql a été incurgité par SPIP-PG.
Stratégie de simulation de Replace: faire
'''Update''' ''Y'' '''Where''' ''primary-key=X''
et si ça n'affecte rien, faire
'''Insert''' ''X . Y''
Il y a une section critique entre les deux opérations qui n'est pas blindée contre les accès concurrents, il faudra y revenir. Par ailleurs ça oblige à avoir la description de la table (pour connaitre la primary-key et le type de ses composants, car ce n'est pas toujours un simple nombre) et presqu'inévitablement de présenter à la fonction abstraite les arguments sous forme de tableau ''champ=>valeur'' pour pouvoir passer faclement de ''X'' et ''Y'' à ''X . Y'' ci-dessus, ça éclaire la définition finale de l'interface.
Autre point d'achoppement: des articles post-datés avaient la date 9000-00-00, refusée par PG. Ce n'est pas la date de la fin du monde, mais du coup à l'import en PG toute date NNNN-00-00 est transforméen NNNN-01-01.
Modified:
spip/ecrire/base/db_mysql.php
spip/ecrire/base/db_pg.php
spip/ecrire/inc/import_1_3.php