[spip-dev] Hors de MySQL, point de salut ?

Bonjour,

Je suis actuellement confronté au fait que je n'ai pas la possibilité de
faire installer MySQL sur le serveur devant acueillir le site internet. La
seule solution possible est PostgreSQL

De nombreuses discussions ont été abordés il y a quelques mois sur cette
liste concernant le portage d'une version de SPIP tournant avec ce système
de base de données, meme si il semble que rien de concret n'ai encore soit
été réalisé, soit été diffusé largement.

Je me tourne vers vous espérant avoir "loupé" une avancée significative dans
ce domaine.

Ne possédant pas l'expérience technique et loin s'en faut pour réaliser une
couche d'abstraction ou tout autre système permettant de rendre spip
indépendant, je risque donc d'etre contraint de me tourner vers un autre CMS
compatible avec PostgreSQL. On m'a parlé de Da Code, avez vous des opinions
sur ce système ou d'autres suggestions ?

Merci d'avance

Grégory CUQ

Centre universitaire J-F Champollion
http://www.univ-jfc.fr

Bonjour Grégory,

Je suis actuellement confronté au fait que je n'ai pas la possibilité
de faire installer MySQL sur le serveur devant acueillir le site internet.
La seule solution possible est PostgreSQL
De nombreuses discussions ont été abordés il y a quelques mois sur
cette liste concernant le portage d'une version de SPIP tournant avec
ce système de base de données, meme si il semble que rien de concret
n'ai encore soit été réalisé, soit été diffusé largement.

Si tu regardes attentivement les archives plus récentes, tu verras que la
solution devrait bientôt arriver, et pas uniquement pour PostgreSQL.

Encore un peu de patience ... :wink:

-Nicolas

Nicolas Hoizey wrote:

Bonjour Grégory,

Je suis actuellement confronté au fait que je n'ai pas la possibilité
de faire installer MySQL sur le serveur devant acueillir le site internet.
La seule solution possible est PostgreSQL
De nombreuses discussions ont été abordés il y a quelques mois sur
cette liste concernant le portage d'une version de SPIP tournant avec
ce système de base de données, meme si il semble que rien de concret
n'ai encore soit été réalisé, soit été diffusé largement.

Si tu regardes attentivement les archives plus récentes, tu verras que la solution devrait bientôt arriver, et pas uniquement pour PostgreSQL.

Encore un peu de patience ... :wink:

-Nicolas

Ok merci je vais regarder plus attentivement alors, mais j'avais rien vu de concret...

gregory

Grégory CUQ wrote:

Nicolas Hoizey wrote:

Bonjour Grégory,

Je suis actuellement confronté au fait que je n'ai pas la possibilité
de faire installer MySQL sur le serveur devant acueillir le site internet.
La seule solution possible est PostgreSQL
De nombreuses discussions ont été abordés il y a quelques mois sur
cette liste concernant le portage d'une version de SPIP tournant avec
ce système de base de données, meme si il semble que rien de concret
n'ai encore soit été réalisé, soit été diffusé largement.

Si tu regardes attentivement les archives plus récentes, tu verras que la solution devrait bientôt arriver, et pas uniquement pour PostgreSQL.

Encore un peu de patience ... :wink:

-Nicolas

J'ai retrouvé vos messages et je vous félicite de votre initiative. j'imagine que ça représente beaucoup de travail.
D'autres personnes se sont telles montrées intéressés par la création de cette couche d'abstraction ? Je n'ai pas les compétences pour vous aider dans cette démarche mais je resterai trés attentif à ce projet.

grégory cuq

Hello!

Bon, notre couche d'abstraction est quasiment finalisée, et Spip fonctionne avec PostgreSQL, Oracle, SQLServer et évidemment MySql :wink:
Probablement d'autres bases de données SQL sont supportées, à condition d'y créer un modèle de données compatibles... (je pense à DB2, Informix, ... par exemple)

Certes, la compilation des squelettes n'est pas encore opérationnelle, mais çà va arriver très vite!

Pour ceux que çà intéresse, voici à quoi ressemble un bout de articles_page.php3 :

/
// Vos articles en cours de redaction
//

echo "<P align=left>";

// ----------Modifications Clever Age-------------------

$articleList = &recuperer_instance_list_articles();
$queryParams = array();
$queryParams[] = $connect_id_auteur;
$queryParams[] = 'prepa';
$articleList->displayHTMLList(_T('info_en_cours_validation'), ARTICLES_BY_STATE, $queryParams);

/*afficher_articles(_T('info_en_cours_validation'),
     "SELECT articles.id_article, surtitre, titre, soustitre, descriptif, chapo, date, visites, id_rubrique, statut ".
     "FROM spip_articles AS articles, spip_auteurs_articles AS lien ".
     "WHERE articles.id_article=lien.id_article AND lien.id_auteur=$connect_id_auteur AND articles.statut=\"prepa\" ORDER BY articles.date DESC");
*/

// ----------Fin modification CA-------------------------

Le code original est commenté :wink:

Et tout a été fait en gardant la structure globale des scripts spip (pas de réécriture !) et en remplaçant tous les accès base par l'accès à une couche objet métier...

Comme çà, on continue même à faire les update CVS :wink:

D'autres infos arrivent très prochainement !

Si certains sont partant pour tester plus à fond d'ailleurs cette abstraction avec Oracle, Postegres ou SQL Server, qu'ils se manifestent, ils sont les bienvenus! Quelques uns sur cette liste avaient proposé il y a un ou deux mois de tester avec différentes bases, mais les travaux n'étaient pas assez avancés à cette époque...

Donc si vous êtes encore chauds, envoyez moi un mail direct que je vous passe ce qu'il faut pour tester :wink:

A++

Antoine.

Grégory CUQ wrote:

Antoine Angénieux wrote:

Hello!

Bon, notre couche d'abstraction est quasiment finalisée, et Spip fonctionne avec PostgreSQL, Oracle, SQLServer et évidemment MySql :wink:
Probablement d'autres bases de données SQL sont supportées, à condition d'y créer un modèle de données compatibles... (je pense à DB2, Informix, ... par exemple)

Certes, la compilation des squelettes n'est pas encore opérationnelle, mais çà va arriver très vite!

Félicitation, peux t'on imaginer son intégration rapide une fois validée à une version officielle de SPIP, qu'en pensent les responsables ?

Pour ceux que çà intéresse, voici à quoi ressemble un bout de

Et tout a été fait en gardant la structure globale des scripts spip (pas de réécriture !) et en remplaçant tous les accès base par l'accès à une couche objet métier...

D'autres infos arrivent très prochainement !

Je vais resté à l'écoute avec attention

Si certains sont partant pour tester plus à fond d'ailleurs cette abstraction avec Oracle, Postegres ou SQL Server, qu'ils se manifestent, ils sont les bienvenus!

Pas de possibilité dpour le moment de tester, je n'ai pas de serveur de tests pour le projet en question sous la main mais je vais essayer de voir ça rapidement, peut etre via mon hébergement perso.

Félicitation, peux t'on imaginer son intégration rapide une fois validée
à une version officielle de SPIP, qu'en pensent les responsables ?

Personnellement, je n'en pense rien tant que je n'ai pas vu l'ensemble du
code. A priori le petit bout montré par Antoine Angénieux a l'air un peu
bizarre (codé en anglais, passage d'arguments dans des tableaux non
structurés), mais comme ce n'est qu'une petite partie de l'API qu'il
propose, on verra plus tard. Ca ne fait jamais que deux ans que ce truc a
été annoncé dans la presse (arf!)...

Si ça fonctionne, c'est clair que ça peut être utile ; maintenant, si ça
nous empêche de coder nos trucs facilement, je ne vois pas comment on pourra
l'intégrer - sauf à arrêter tout développement par la suite.

Il y avait une autre piste : faire que la surcouche qui gère les autres SGBD
soit capable d'intercepter des requêtes MySQL et de les réécrire pour pgsql
et autres.

-- Fil

Avec SPIP 1.4.2 tout allait bien

Mais sous 1,5.2 puis1.6, ça ne marche plus : Quand je clique sur Rechercher,
il ne passe rien

Où est mon erreur ?

http://www.unaforweb.org/SPIP/index.php3

Fil wrote:

[...] Si ça fonctionne, c'est clair que ça peut être utile ; maintenant, si ça
nous empêche de coder nos trucs facilement, je ne vois pas comment on pourra
l'intégrer - sauf à arrêter tout développement par la suite.

Euuuh, à priori çà simplifie la vie pour les nouveaux dev quand même :wink:

Il y avait une autre piste : faire que la surcouche qui gère les autres SGBD
soit capable d'intercepter des requêtes MySQL et de les réécrire pour pgsql
et autres.

Euuuh en fait, là avec cette technique c'est quand même pas gagné, et çà oblige à faire des transformations pour toutes les bases de données... (Une pour postgres, une pour Oracle, une autre pour SQLserveur, ...). Sur notre abstraction maintenant, on n'a qu'un seul jeu de requetes SQL pour TOUTES les bases de données supportées actuellement... (surtout que dans les requetes actuellement présentent dans Spip, je souhaite bien du courage et un gros miracle à celui qui espère pouvoir les intercepter et les "transformer" pour marcher avec une autre base, et ce pour au moins 20% des 800 et quelques requetes qu'utilise Spip! ;))

La seule contrainte pour que çà fonctionne sur une BD SQL quelconque, c'est d'avoir un modèle de données compatibles (sachant que c'est pas très compliqué, et qu'on utilise que des champs types Varchar, Blob et numériques, et pas une seule date, qui sont gérés commes des chaines de caractères au format Date ISO) et un respect assez modeste de la norme SQL92 par la BD...

Ceci dit, attendez un peu, et on pourra vous présentez çà de manière beaucoup plus exhaustive, et là vous pourrez vraiment juger !

A++

Antoine.

chez moi, c'est OK

Nico

59m writes:

Ca ne fait jamais que deux ans que ce truc a été annoncé dans la
presse (arf!)...

Annoncé par une agence de communication ... :wink:

Maintenant, c'est du tangible, ça marche réellement !

-Nicolas