Portage de SPIP en PostGres

et réflexions sur les enjeux du portage

Ou SPIP (à partir de sa version 1.9.3) s’ouvre à d’autres bases que MySQL, en commençant par PostGreSQL
Voir aussi Multibases et Multitables - Les annonces

L’annonce

Reprise ici cette annonce sur la liste spip-core. En attendant qu’une documentation plus complète soit réalisée (sur spip.net probablement)

De : "Committo,Ergo:sum" <esj>
Date : 18 octobre 2007 15:54:09 GMT+02:00
À : spip-core at rezo.net
Objet : [spip-dev] ! Portage de SPIP en PostGres

Le portage de SPIP en Postgres est terminé avec le dépot http://trac.rezo.net/trac/spip/chan... ce qui clôt la tâche http://trac.rezo.net/trac/spip/tick....

On trouvera dans ce ticket une description des fonctions d’interface qu’il faut à présent utiliser pour écrire des extensions de SPIP portables.

On y trouvera également un sed script permettant de renommer automatiquement toutes les fonctions qui ont du l’être pour pouvoir obtenir la portabilité de SPIP.

La version Postgres a été testée sur l’espace privé et un petit jeu de squelettes. Tout ceux ayant la possibilité de tester d’autres squelettes dans une environnement Postgres sont invités à le faire et à reporter leur expérience afin de consolider ce premier portage.

Merci à tous.

À propos de PostGres

-  Le site officiel
-  http://fr.wikipedia.org/wiki/PostgreSQL
-  Tutoriel PostgreSQL 6.5 sur linux france

D’autres portages

D’autres portages on été amorcés, mais pas encore finalisés. Même si leur code n’est plus forcément à jour leur existence prouve que c’est possible : contributeurs à vos claviers :
-  pour Oracle : MultiBase Oracle
-  pour SQLite : http://zone.spip.org/trac/spip-zone...

Le portage sur d’autres bases pourquoi faire ?

Citons DéesseA l’auteur du portage sur Posgres

L’utilisation que j’en ai ce sont des bases de données pré-existantes (parfois plus vieilles que SPIP) qu’il faut mettre sur le Web.... pensez par exempleà tous les catalogues de bibliothèques : ce sont des BD (Oracle ou Microsoft souvent) que le personnel de la bibliothèque interrogeait sur un vieux terminal alphanumérique. Maintenant on veut en faire un site Web interrogeable par tout le monde. Avec SPIP 1.9.3, il est possible de monter cela en une journée.

Mais ce n’est pas le seul débouché, pour SQLlite dixit Fil :

SQLite est maintenant livré en standard en php, et ça permettrait d’avoir un site
 »tout fichier » [1] ; pour les petits sites (et les gros sous réserves de
perfs acceptables) çela offrirait d’importantes facilités dans la maintenance, les backups, l’hébergement etc ...

Ainsi l’association du Multitables avec le Multibases offre de très large possibilitée d’usage pour SPIP en le transformant en frontal de mise en ligne web pour de nombreuses applications.

Influence sur la compatibilité des plugins

Les adaptations du code de SPIP nécessaires pour la portablité ont parfois aussi portées sur certaines fonctions appelées également par les plugins. Il en résulte le besoin de mises à jour sur ceux-ci, cf. Compatibilité des plugins entre SPIP 1.9.2 et SPIP 1.9.3

Notes

[1NDLR : sans besoin de base réelle, il s’agirait d’une émulation de MySQL ici, d’où les contraintes de performances

Sur le Web

SPIP : Ticket #716 (multibase : utiliser un seul squelette pour interroger plusieurs spip)

Ayant testé/utilisé les BOUCLEs en multibase je tombe sur un problème complémentaire qui consiste à vouloir interroger des tables spip identiques (au préfixe de nom près) à l’aide d’un squelette unique : [voir ce message http://thread.gmane.org/gmane.comp.web.spip.devel/38204/focus=38324] pour plus de détails.

http://trac.rezo.net/trac/spip/ticket/716?format=rss

SPIP : Ticket #209 (Portage vers d’autres serveurs de bases de données)

Ce ticket de type tâche a été ouvert pour signaler que le portage de SPIP vers d’autres serveurs que MySQL se poursuit. Il s’appuie sur les portages partiels déjà effectués, savoir :

Postgres :
http://thread.gmane.org/gmane.comp.web.spip.devel/21976
http://www.opensquad.com/article2.html
http://www.opensquad.com/article3.html

Oracle :
http://www.spip-contrib.net/MultiBaseOracle

SQLite :
http://zone.spip.org/trac/spip-zone/browser/_dev_/sqlite

Actuellement le portage en PostGres ? est le plus avancé.

http://trac.rezo.net/trac/spip/ticket/209?format=rss

Dernière modification de cette page le 6 novembre 2007

Discussion

Une discussion

  • 2

    Bonjour,

    j’ai été ravi d’apprendre le portage de spip sur PostgreSQL car cette base de données gagne a être connue et je dirais même qu’aujoud’hui nous n’utilisons pratiquement que ce SGBDR

    Du coup je me suis empressé de faire un checkout du dépot et de créer une bd spip sur une postgresql 8.0.x

    malleureusement j’obtiens cette erreur lorsque je tente d’enregistrer une info dans la bd

    Warning : pg_query() : Query failed : ERROR : function least(double precision, double precision, double precision) does not exist HINT : No function matches the given name and argument types. You may need to add explicit type casts. in D :\web\spipsvn\ecrire\req\pg.php on line 109

    Il doit me manquer la fonction leaf..
    ou puis je chercher ? je n’ai rien trouvé sur google pouvant m’aider...

    • Committo, Ergo Sum

      Heureux de vous ravir, d’autant que nous manquons de beta-testeur pour cette nouvelle fonctionnalité, la preuve hélas.

      Deux réponses :

      1. Ce portage de SPIP nécessite PostGres 8.2 ;

      2. Effectivement, il y a un problème avec la fontion MySQL nommée LEAST je vais corriger ça dès que le serveur SVN sera sur pied.

    • Committo, Ergo Sum

      L’erreur autour de LEAST devrait être corrigée par la SVN 10869.

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom