Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Conversion BDD MySQL ---> PostgreSQL


Messages recommandés

Posté(e) (modifié)

Salut !

 

J'ai un forum phpBB2 sur une BDD MySQL et je viens de faire le faire migrer chez un hebergeur me proposant une BDD postgreSQL.

 

L'opération de restitution est un échec total, voici le symptôme :

 

Error importing backup file

DEBUG MODE

SQL Error : -1 ERROR: syntax error at or near "(" at character 52

CREATE TABLE phpbb_auth_access( group_id mediumint(8) NOT NULL, forum_id smallint(5) unsigned NOT NULL, auth_view tinyint(1) NOT NULL, auth_read tinyint(1) NOT NULL, auth_post tinyint(1) NOT NULL, auth_reply tinyint(1) NOT NULL, auth_edit tinyint(1) NOT NULL, auth_delete tinyint(1) NOT NULL, auth_sticky tinyint(1) NOT NULL, auth_announce tinyint(1) NOT NULL, auth_vote tinyint(1) NOT NULL, auth_pollcreate tinyint(1) NOT NULL, auth_attachments tinyint(1) NOT NULL, auth_mod tinyint(1) NOT NULL, KEY group_id (group_id), KEY forum_id (forum_id) )

Line : 980
File : admin_db_utilities.php

 

 

Je ne comprends pas trop puisque le langage de manipulation de données étant du SQL je ne vois pas en quoi cela changerait d'un SGBD à un autre, un SELECT restera un SELECT , un DROP kifkif ..... :P

 

De plus j'ai testé l'opération de restitution sur un forum crée pour l'occasion sur une BDD MySQL et cela fonctionne à merveille .... :-(

 

Si vous voyez la solution ce serait vraiment sympa :-P

Modifié par Pzible

Posté(e)

Juste pour exemple, sous Oracle, ce n'est pas avec "KEY <nom de clé> (<nom de colonne>)" qu'on définit une clé primaire. Les langages SQL employés par certains SGBD ne sont pas tous 100% conformes à l'une des normes SQL...

Apparemment il a l'air de buter sur "mediumint(8)". Tu es sûr que le type "mediumint" est reconnu par PostgreSQL ? Tu es sûr que ce type peut se voir muni d'une définition de longueur entre parenthèses ?

Désolé, mais tu vas devoir potasser la doc de PostgreSQL pour voir quelle compatibilité tu peux trouver entre tes deux SGBD...

Posté(e)

Merci Kewlcat pour ta réponse, en effet il semblerait que ce ne soit pas du "100%" SQL, déjà lorsque je génère un fichier de sauvegarde sur une base postgreSQL c'est du HTML que je reçois en fichier txt, je crois que je vais pas y'arriver :-(

 

Tant pis, on va redemarrer le forum à 0 :P

  • 4 semaines après...
Posté(e) (modifié)
Merci Kewlcat pour ta réponse, en effet il semblerait que ce ne soit pas du "100%" SQL, déjà lorsque je génère un fichier de sauvegarde sur une base postgreSQL c'est du  HTML que je reçois en fichier txt, je crois que je vais pas y'arriver  :-(

 

Tant pis, on va redemarrer le forum à 0  :P

491436[/snapback]

 

C'est vrai que passer d'un SGBD à un autre n'est pas chose facile... Je suis en train de passer d'Interbase vers Oracle chez un client et il y a un certain nombre de choses à vérifier et à modifier.

En fait, le problème ne se posera pas vraiment pour migrer les données d'un SGBD à l'autre, car comme tu l'as bien dit 'Pzible', un INSERT reste un INSERT, un SELECT etc...

 

Là où les SGBD prenne un peu plus de liberté, c'est généralement dans le type des données. Donc je te conseille de vérifier les types de données possibles pour PostGre.

 

Je te conseille de générer le script de création de la BDD (sans les données pour commencer) et de vérifier la conformité des requêtes générées pour un environnement PostGre. En espérant que tu n'ais pas trop de tables :-P.

 

Il ne devrait pas y avoir de problèmes pour insérer les anciennes données une fois la base créée (si ça plante vérifie le format des dates à tout hasard).

 

Sinon est-ce que tu peux nous dire pourquoi tu passes sous PostGres (nouvelles nécessités, environnement relatif etc.). Et pourquoi pas FireBird ? :-P

 

Bon courage !

Modifié par nessi
Posté(e) (modifié)

Salut

effectivement la différence se situe souvent au niveau du type de données...

 

je bosse sur Postgres tous les jours : dans la doc que tu peux trouver ici, tu verras les différents types.

 

Perso, plutôt que de recommencer du début je ferais encore qq essais !

Par exemple, après le dump tu peux faire remplacer dans le fichier txt les types de données par les nouveaux types équivalents en Postgres.

 

Par exemple pour ton mediumint, tu pourras remplacer par integer, ou encore numeric...

 

Tu as quel version de Postgres ?

7.3 ?

8 ?

Modifié par minos

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...