PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#26 08/06/2017 09:57:06

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

[TABLE]om_utilisateur
Colonnes :
om_utilisateur [qui est le numéro]
nom
email
Login
Pwd
om_profil
om_collectivite
om_type
service

Hors ligne

#27 08/06/2017 10:12:01

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

ragardez ce massage d'erreur bizard (les apostrophes)
:
COPY public.om_utilisateur FROM 'C:\\Users\\[nom_util]\\Desktop\\opencourrier2.csv\\opencourrier_table_om_utilisateur.csv'
:
ERREUR:  syntaxe en entrée invalide pour l'entier : « "1,""ADMINISTRATEUR"",""hotline@live.fr"",""admin"",""mdp"",""5"",""1"",""db"",""*""" »
CONTEXT:  COPY om_utilisateur, ligne 1, colonne om_utilisateur : « "1,""ADMINISTRATEUR"",""hotline@live.fr"",""admin"",""mdp"",""5... »

Hors ligne

#28 08/06/2017 10:38:23

ruizsebastien
Membre

Re : migration données MySQL vers PostgreSQL

je voulais le type de donnée de chaque colonne (integer, varchar, etc...)


Cordialement,

Sébastien.

Hors ligne

#29 09/06/2017 09:26:05

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

[TABLE]om_utilisateur
:
Colonnes :
:
om_utilisateur [qui est le numéro] --> int(8)
nom --> varchar(30)
email --> varchar(40)
Login --> varchar(30)
Pwd --> varchar(100)
om_profil --> varchar(2)
om_collectivite --> int(11)
om_type --> varchar(20)
service -->varchar(15)

Hors ligne

#30 09/06/2017 10:00:09

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

ma base pg sql :
:

om_utilisateur     integer    
nom     character varying(30)    
email     character varying(40)    
Login     character varying(30)    
Pwd     character varying(100)    
om_profil     character varying(2)
om_collectivite     integer    
om_type     character varying(20)    
service     character varying(15)

Hors ligne

#31 09/06/2017 10:02:05

ruizsebastien
Membre

Re : migration données MySQL vers PostgreSQL

et dans votre fichier csv, on peut avoir 2 ou 3 lignes complètes ?


Cordialement,

Sébastien.

Hors ligne

#32 09/06/2017 10:20:54

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

4    [NOM_EN_MAJUSCULE]    [pseudo]@hotmail.fr    [pseudo]    891173d5aea407175fb014efa32a9796    5    1    db    *
5    [NOÉ_EN_MAJUSCULE]    [pseudo]@hotmail.fr    [pseudo]    a9a876172168839dcac429eb0edfa189    4    1    db    SG
6    [NOM_EN_MAJUSCULE]    [pseudo]@hotmail.fr    [pseudo]    acdf11f13df3520b2accef73bc97476e    4    1    db    SG
:
:
(désoler je ne peu pas divulguer de noms ou d'adresses mail)

Hors ligne

#33 09/06/2017 10:26:37

ruizsebastien
Membre

Re : migration données MySQL vers PostgreSQL

COPY essaie d'insérer dans la colonne om_utilisateur "1,".
la virgule est donc en trop.
Il faudrait nettoyer le csv avant de l'importer.


Cordialement,

Sébastien.

Hors ligne

#34 09/06/2017 10:26:59

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

ma base Mysql est en latin1, j'exporte les fichiers CSV en utf-8 la base pgadmin est en utf-8 j'ai aussi tenter une base en latin1

Hors ligne

#35 09/06/2017 10:28:02

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

comment ça nettoyer le CSV ?

Hors ligne

#36 09/06/2017 10:40:31

ruizsebastien
Membre

Re : migration données MySQL vers PostgreSQL

je ne suis pas trop windows mais en cherchant bien dans google vous devriez pouvoir trouver votre bonheur.
L'idée est de parcourir les lignes du fichier et de supprimer les virgules.


Cordialement,

Sébastien.

Hors ligne

#37 09/06/2017 10:47:43

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

il faudra donc remplacer les virgules par quoi ?
et si il n'y as pas de virgules, comment postgre peut reconnaître les champs ?

Hors ligne

#38 09/06/2017 10:49:53

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

lorsque j'exporte ma bases depuis mysql j'ai ces options :
:
Colonnes séparées par :
Colonnes entourées par :
Caractère d'échappement :
Lignes terminées par :
Remplacer NULL par :
:
cependant j'ai déjà tester plein de trucs mais je ne connaît pas les carractères souhaitez par postgre, j'ai beau chercher mais il n'y à pas beaucoup de docs là dessus

Hors ligne

#39 09/06/2017 10:51:05

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

j'ai vu quelque part dans la doc de postgre que le caractère d’échappement serait \ mais je ne suis pas sur

Hors ligne

#40 09/06/2017 11:06:30

ruizsebastien
Membre

Re : migration données MySQL vers PostgreSQL

il faut supprimer la virgule tout cours.
Ensuite pour votre export depuis mysql le mieux est de choisir : "Colonnes séparées par :" et lui indiquer ";"
pour l'import dans postgresql il faut choisir le séparateur de colonne ";" avec l'option DELIMITER de COPY.
voir la doc : http://docs.postgresql.fr/9.6/sql-copy.html


Cordialement,

Sébastien.

Hors ligne

#41 09/06/2017 11:12:30

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

et les autres options je met quoi ? car à lorigine les options de bases sont :
:

Colonnes séparées par : ,
Colonnes entourées par : "
Caractère d'échappement : "
Lignes terminées par : AUTO
Remplacer NULL par : NULL

Hors ligne

#42 09/06/2017 11:16:21

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

Erreur SQL :

ERREUR:  syntaxe en entrée invalide pour l'entier : « 4"[NOM_EN_MAJ]"[pseudo]@hotmail.fr"[pseudo]"891173d5aea407175fb014efa32a9796"5"1"db"* »
CONTEXT:  COPY om_utilisateur, ligne 2, colonne om_utilisateur : « 4"[NOM_EN_MAJ]"[pseudo]@hotmail.fr"[pseudo]"891173d5aea407175fb014efa32a9796"5"1"db"* »

Dans l'instruction :
COPY public.om_utilisateur FROM 'C:\\Users\\[nom_util]\\Desktop\\test\\opencourrier_table_om_utilisateur.csv' DELIMITER ';' CSV header

Dernière modification par rygegor (09/06/2017 11:44:29)

Hors ligne

#43 09/06/2017 11:18:07

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

cette fois-ci l'erreur est à la ligne 2 mais j'ai toujours pas compris MDR (désoler d'^tre chiant comme ça mais j'ai beau essayer un peut tou tje me renseigne etc... mais cette migration n'est pas simple pour moi.... ^^")

Hors ligne

#44 09/06/2017 11:57:22

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

j'ai réussi à lancer ma commande, j'ai exporter les fichiers au forma "CSV for MS Excel" (donc pour Microsoft, je vai retourner à l'école primaire pour réapprendre à lire MDR) puis à la fin de ma commande COPY, j'ai rajouter la ligne :
DELIMITER ';' CSV header
comme vous me l'aviez-dit, résultat toutes les commandes ont étaient exécutées

Hors ligne

#45 09/06/2017 12:10:24

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

par contre juste une dernière petite chose, il m'arrive que certains champs d'une table mysql et pgsql ne soient pas placer de la même manière ou alors que l'un des champ mysql n'existe pas, comment faire pour le preciser ? (pourriez-vous me donner une exemple par rapport à ça s'il vous plaît ?)
:
:
MySQL
:

om_utilisateur --> int(8)
nom --> varchar(30)
email --> varchar(40)
Login --> varchar(30)
Pwd --> varchar(100)
om_profil --> varchar(2)
om_collectivite --> int(11)
om_type --> varchar(20)
service -->varchar(15)
:
PostgreSQL
:
om_utilisateur --> int(8)
nom --> varchar(30)
email --> varchar(40)
Login --> varchar(30)
Pwd --> varchar(100)
om_collectivite --> int(11)
om_type --> varchar(20)
om_profil --> varchar(2)
service -->varchar(15)
:
:
merci smile

Hors ligne

#46 09/06/2017 13:12:50

rjuju
Administrateur

Re : migration données MySQL vers PostgreSQL

Il n'y a pas de solution magique. Soit vous exportez les données comme attendu sur la table cible du côté mysql, soit vous intégrer les données dans une autre table côté postgres et vous insérer ensuite les bonnes colonnes sur la table finale.  Ou vous passez par un etl.

edit: J'ai répondu un peu vite.

Vous devriez vous en sortir en spécifiant les champs contenus dans le fichier csv au moment de l'import.

Sur un exemple comme

table mysql: id, val1, val2
table postgres: id, val2, val3, val1

Vous pouvez importer les données qui existaient sur mysql avec la commande COPY suivante :

COPY nom_table(id, val1, val2) FROM...

Par contre, on ne peut pas exclure un champ du fichier CSV, il faut donc que la table sur postgres ait au moins autant de champs que la table mysql, sinon il faut utiliser les autres solutions données en début de message.

Hors ligne

#47 12/06/2017 15:12:34

rygegor
Membre

Re : migration données MySQL vers PostgreSQL

je te remercie c'est bon mon problème est régler smile
je  remercie tout ceux qui m'ont aidaient, je passe ce post en résolu ^^

Hors ligne

Pied de page des forums