[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script Bash pour convertir BD Access vers MySQL ?



Le Fri, 19 Jul 2013 13:25:06 +0200,
Sébastien NOBILI <sebnewsletter@free.fr> a écrit :

> Le vendredi 19 juillet 2013 à 12:41, Alain Vaugham a écrit :
> > > J'ai probablement une piste :)
> > > 
> > > →
> > > http://nialldonegan.me/2007/03/10/converting-microsoft-access-mdb-into-csv-or-mysql-in-linux/
> > 
> > Mon expérience : les formats des champs Access ne sont pas forcément
> > identiques à ceux de Postgres. Donc il me faut tous les reformater
> > à la main pour les mettre au format Postgres.
> > 
> > S'il existe un script qui sait deviner comment transformer les
> > formats de la source vers le format de la cible alors je suis
> > preneur aussi!
> 
> Qu'entends-tu par « les formats des champs Access ne sont pas
> forcément identiques à ceux de Postgres » ? Tu pourrais donner un
> exemple ?

Super : c'est vendredi!
Cependant, je ne voudrai pas voler le post initial...

Voici l'exemple pour lequel je n'ai pas encore trouvé de solution
rapide et simple :
Access dispose d'un champ de type NuméroAuto qui accepte par défaut un
entier long, soit incrémental, soit aléatoire.
L'intérêt de ce type de champ c'est que si une ligne de la table est
détruite, le contenu de ce champ est "brûlé". Il n'est donc plus
possible de le réutiliser dans une nouvelle ligne.
C'est l'usage type d'une traçabilité de numéros de série. Un numéro de
série est sensé être unique. Si un produit est détruit, son numéro de
série ne doit plus être réutilisatable. 
Bon, d'accord on pourrait trouver une autre solution que l'usage du
NuméroAuto en ajoutant une colonne pour indiquer l'état du numéro de
série... mais dans mon cas, je me contente de détruire la ligne du
numéro de série dont le produit a été mis au rebus.

Extraire toutes les lignes de ce champ pour les mettre dans un fichier
csv et les importer dans Postgres ne pose aucun problème. Là n'est pas
la question.
Par contre je n'ai pas trouvé dans Postgres l'équivalent d'un format de
champ qui corresponde au format NuméroAuto d'Access. Dans Postgres, le
format serial UNIQUE NOT NULL ne tient pas compte des numéro brûlés.

Donc pour migrer une telle colonne je n'ai pas de solution qui soit
automatique.



-- 
Alain Vaugham
Clef GPG : 0xD26D18BC


Reply to: