Vous n'êtes pas identifié(e).
je te remercie c'est bon mon problème est régler
je remercie tout ceux qui m'ont aidaient, je passe ce post en résolu ^^
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
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
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.... ^^")
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
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
j'ai vu quelque part dans la doc de postgre que le caractère d’échappement serait \ mais je ne suis pas sur
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
il faudra donc remplacer les virgules par quoi ?
et si il n'y as pas de virgules, comment postgre peut reconnaître les champs ?
comment ça nettoyer le CSV ?
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
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)
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)
[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)
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... »
[TABLE]om_utilisateur
Colonnes :
om_utilisateur [qui est le numéro]
nom
email
Login
Pwd
om_profil
om_collectivite
om_type
service
COPY public.om_utilisateur FROM 'C:\\Users\\[profil]\\Desktop\\opencourrierr.csv\\opencourrier_table_om_utilisateur.csv'
:
voilà la requete qui m'affiche comme merssage d'érreur
:
ERREUR: syntaxe en entrée invalide pour l'entier : « 4;[NOM_en_majuscule];[pseudo]@live.fr;[pseudo];891173d5aea407175fb014efa32a9796;5;1;db;* »
CONTEXT: COPY om_utilisateur, ligne 1, colonne om_utilisateur : « 4;[NOM_en_majuscule];[pseudo]@live.fr;[pseudo];891173d5aea407175fb014efa32a9796;5;1;db;* »
pour le coup, d'où pourrai provenir mon message d'erreur ?
car je ne sais pas comment exporter mes données mysql en potgres
j'ai tenter :
Colonnes séparées par : ,
Colonnes entourées par : '
Caractère d'échappement : \\
Lignes terminées par : AUTO
Remplacer NULL par : NULL
Enlève les caractères de fin de ligne à l'intérieur des colonnes (non)
Afficher les noms de colonnes en première ligne (non)
et lorsque j'insère mon fichier grâce à COPY ça ne marche toujours pas, je ne connai pas les différences de syntaxes entre mysql et potgre (je n'ai trouver aucune doc là dessus ^^")
en tout cas (malgrès mes lacunes) je trouve que postgre est beaucoup mieux développer que mysql (plus d'options etc...) et je pense que je vais beaucoup m'intéresser à ce SGBD (par contre il me reste 1 semaine pour transvaser mes données avant la fin de mon stage et je bloque alors que pourtant je sais que je ne devrai pas rencontrer de dificultés à ce nieau là)
ah maintenant que j'ai bien compris comment marcher postgre et sa commande copy (car comme je l'ai dit je suis nouveau et vraiment ça change de MySQL qu'on nous fait bouffer depuis le début du lycée XD),
lorsque j'entre la commande pour ouvrir le fichier BAM !!! je ne peut pas entrer mes données car il y à des éerreurs, j'ai du mal exporté mes données (les tables et les champs sont exactements pareils) car je ne connait pas vraiment la différence entre MySQL et PostgreSQL au niveau du SQL
par exemple, mon erreur actuelle est :
ERREUR: syntaxe en entrée invalide pour l'entier : « [chiffre];[nom];[adresse]@[mail].fr;[pseudo];[MDP];[nombre];[nombre];[texte];[texte] » CONTEXT: COPY [nom_able], ligne 1, colonne [nomtable] : « [chiffre];[nom];[adresse]@[mail].fr;[pseudo];[MDP];[nombre];[nombre];[texte];[texte] » Dans l'instruction : COPY [nom_able] FROM 'C:\\[chemin]\\[etc...]\\[mon_fichier].csv'
vous pourriez m'expliquer comment utiliser la commande COPY ? car je cherche partout mais je ne voi que ça :
COPY nom_table [ ( colonne [, ...] ) ]
FROM { 'nom_fichier' | STDIN }
[ [ WITH ] ( option [, ...] ) ]
COPY { nom_table [ ( colonne [, ...] ) ] | ( requête ) }
TO { 'nom_fichier' | STDOUT }
[ [ WITH ] ( option [, ...] ) ]
où option fait partie
de :
FORMAT nom_format
OIDS [ oids ]
DELIMITER 'caractère_délimiteur'
NULL 'chaîne_null'
HEADER [ booléean ]
QUOTE 'caractère_guillemet'
ESCAPE 'caractère_échappement'
FORCE_QUOTE { ( colonne [, ...] ) | * }
FORCE_NOT_NULL ( colonne [, ...] )
mais c'est quoi ce [ ( colonne [, ...] ) ] ou encore | STDIN } etc... et que dois-je mettre dans ma commande exactement ?
ah je n'avais pas vue ta réponse, excuse moi
je vais expliquer en gros mon problème, je suis sur une application web nommé opencourrier (créer par openmairie) et je souhaite la mettre à jours, pour celà il faut passer par postgreSQL et non mySQL pour l'extension PostGIS cependant après avoir créer ma bases etc... pour mon appli web sur postgre en local, il faut que j'arrive à trouver le moyen de mettre les données de mes tables dans ma bases de donnée (mais j'ai beacoup trop d'insert à rentrer pour pouvoir le faire à la main donnée par donnée soit près de 19 500 insert) j'ai déjà mes tables et mes séquences mais il faut faire passer mes données de mysql vers postgre cependant, j'ai était mis en garde que le forma date n'était pas le même pour ces deux SGBD ce qui pourrai poser problème, de plus je n'arrive pas à trouver le moyen de transférer les données d'un SGBD à un autre.... quel serai le moyen le plus façile dans mon cas ? (sachant que je gère très bien le SQL de MySQL mais que je ne connait très peut celui de postgreSQL et que cette solution devrai pouvoir être exécutée par des personnes qui ne sont pas développeurs [mais qui sont quand-même doués dans le serveut informatique] )
merci de bien vouloir m'aider (oui je reprends tout depuis le début)
mais sinon le message d'erreur c'était du genre :
ERREUR: n'a pas pu ouvrir le fichier «C:/[...]/fichier.csv » pour une lecture : Permission denied
je souhaiterai savoir aussi comment marche la commande COPY (car je ne sais plus comment j'avais fait la dernière fois, j'aurai du prendre note) car partout où je me renseigne, ils ne montrent que comment copier une table alors que c'est une bases de donnée entière que je souhaiterai importe
CSV (excusez-moi) pourtant si, le répertoire sur lequel est mon fichier Postgre y à accès mais pourtant l'accès n'est pas autoriser, de plus lorsque j'utilise des logiciels qui me permettent de passer directement de mysql à postgresql, ces logiciels cessent de fonctionnez (tous) je ne comprends pas je suis dans une impasse (quelqu'un aurait un remède miracle ?)