IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

[SGBD] Migration de mysql vers PostgreSQL ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Points : 78
    Points
    78
    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 )

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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 !

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    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

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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)

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    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 ?

  6. #6
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    voici le code des principales methodes de ma classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
        }

  8. #8
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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.

  9. #9
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    si je comprends bien les prototypes des fonctions de mysql et de postgre sont les mêmes ?? meme nom (sauf prefix), meme attribut ?

  10. #10
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    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...

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    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?

  12. #12
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    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

  13. #13
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Points : 78
    Points
    78
    Par défaut
    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 `

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PostgreSQL] Migration d'un site web de MySQL vers PostgreSql
    Par zozotitou dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/01/2014, 17h26
  2. Réponses: 8
    Dernier message: 30/05/2011, 11h37
  3. migration d'un bdd mysql vers postgresql
    Par misseva3105 dans le forum Installation, migration et administration
    Réponses: 1
    Dernier message: 20/01/2011, 10h36
  4. migration de mysql vers postgresql
    Par ANISSS dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 18/05/2007, 15h19
  5. Migrer de MySQL vers PostgreSQL
    Par Acti dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 25/02/2005, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo