Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2006, 12h36   #1
Membre du Club
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 149
Points : 45
Points : 45
Par défaut [SGBD] Migration de mysql vers PostgreSQL ?

Bonjour,
J'ai créer une application web qui utilise comme SGBD mysql 5. Est t-il facile de migrer vers PostgreSQL ( sachant que j'utilise pour mon application pour tout ce qui est connextion à la base, execution de requête ... une classe )
haffouff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 12h42   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Si ta classe utilise dbx et que tu n'utilises pas de fonctions mysql exotiques, ça devrait se passer sans douleur pour le code PHP.

Si tu n'utilises pas dbx, ça dépend, faut voir. Si ta classe est bien foutue, ça devrait rester relativement aisé tout de même.

Si tu dois faire des modifs, anticipe : passe direct à dbx !
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 12h46   #3
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Pratique sa de coneiller à quelqu'un d'utiliser une extension qui est deja condamné dans le standard php !

Citation:
Envoyé par http://fr.php.net/manual/fr/ref.dbx.php
Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.


Dans la mesure ou il ne donne pas sa version de PHP mieux vau conseiller PDO.


-------
Tant que j'y pense il y à aussi ADODB qui peut fonctionner pour PHP 4 et qui supporte plétor de bdd dont pgsql.
-> http://phplens.com/lens/adodb/docs-adodb.htm#intro
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 12h49   #4
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ePoX
Pratique sa de coneiller à quelqu'un d'utiliser une extension qui est deja condamné dans le standard php !





Dans la mesure ou il ne donne pas sa version de PHP mieux vau conseiller PDO.
Ooops ! Ben je me coucherai moins con.
PHP4 -> DBX,
PHP5 -> PDO (ne marche pas avec PHP4)
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 12h53   #5
Membre du Club
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 149
Points : 45
Points : 45
Non je n'utilise pas dbx mais une classe GBD que j'ai implémenté avec des attribut (nom de la base , nom d'utilisateur ...) et des méthodes (connecter, executerRequete, fetch...).
Y a t-il une solution ?
haffouff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 12h55   #6
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par haffouff
Non je n'utilise pas dbx mais une classe GBD que j'ai implémenté avec des attribut (nom de la base , nom d'utilisateur ...) et des méthodes (connecter, executerRequete, fetch...).
Y a t-il une solution ?
Il y a toujours une solution. Tu ne nous dit toujours pas ce qu'il y a dedans, mais la clé semble être dans la modification de ces méthodes.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 13h05   #7
Membre du Club
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 149
Points : 45
Points : 45
voici le code des principales methodes de ma classe
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public FUNCTION connectBd()
    {    
        $connexion = mysql_connect($this->hostName, $this->userName, $this->passWord)
 
         OR die( mysql_errno().": ".mysql_error()."<br>");    
 
          $this->connexion=$connexion;
 
        mysql_select_db($this->DATABASE) OR die (mysql_errno().": ".mysql_error()."<br>");
 
 
        RETURN $connexion;
    }  
 
public FUNCTION deconnectBd()
    {
        $a = mysql_close($this->connexion);
        $this->connexion=NULL;
        RETURN $a;
    }
 
public FUNCTION execQuery($requete)
    {
        $this->result = mysql_query ($requete)    OR die (mysql_error());
        //echo "<br>requete executer";
 
 
    }
public FUNCTION fetch()
    {
        while($row[] = mysql_fetch_array($this->result)){}
        RETURN $row;
    }
haffouff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 13h11   #8
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Il ne te reste plus qu'à trouver les équivalents PostGre des fonctions mysql_xxx que tu utilises, et à remplacer ! (C'est la version "simple").

http://fr2.php.net/manual/fr/ref.pgsql.php

Principe : tu ne dois plus avoir d'occurence de la chaîne "mysql" dans aucun fichier source PHP.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 13h18   #9
Membre du Club
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 149
Points : 45
Points : 45
si je comprends bien les prototypes des fonctions de mysql et de postgre sont les mêmes ?? meme nom (sauf prefix), meme attribut ?
haffouff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 13h20   #10
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par haffouff
si je comprends bien les prototypes des fonctions de mysql et de postgre sont les mêmes ?? meme nom (sauf prefix), meme attribut ?
Je me suis pas plongé dedans, mais a priori, si t'as du bol, ouais... Vérifie quand même la doc quand tu utilises une fonction.
Et fais des sauvegardes...
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 13h30   #11
Membre du Club
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 149
Points : 45
Points : 45
Encore une dernière question :

Si je fait un export avec phpmyadmin pour exporter ma base mysql est ce que le code générer me permet de créer la même base dans postegre?
haffouff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 14h27   #12
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Je ne l'ai jamais fait, mais normalement oui.

A ceci près qu'il faudra faire attention aux particularités de mysql.
Par exemple les ` pour entourer nom de tables/colonnes.
Ceci n'existe peut être pas dans pgsql, ou bien pgsql utilise un autre caractère.

Par exemple cette requete pour mysql SELECT `toto` FROM `bibi`, ne fonctionne pas sous SQL server.
Pour la rendre fonctionnel il faut utiliser les [] donc, SELECT [toto] FROM [bibi]

A part cela, pour l'export/import de ta bdd ce ne devrait pas poser de souci. Il faudrait regarder aussi le code exporter pour les SP et les triggers... A vérifier.

Mais dans l'ensemble je serait, à priori, plutot confiant à ta place.

bbye
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2006, 15h29   #13
Membre du Club
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 149
Points : 45
Points : 45
Ok merci beaucoup pour votre aide.
Mais je crois que je vais passer toute une journée à vérifié mes requêtes s'ils contiennet des côtes `
haffouff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h21.


 
 
 
 
Partenaires

Hébergement Web