Cette erreur ne dit pas : "Cette clé est dupliquée dans la base alors qu'elle ne devrait pas" Cette erreur dit : "Vous essayez d'insérer un enregistrement avec un ID qui est déjà présent, je refuse de le faire car c'est une clé primaire"
Donc a priori rien à voir avec le type, il faut chercher dans ton script : soit tu essaies d'insérer deux fois la même ligne de ton ancienne base, soit la table d'arrivée n'est pas totalement vide, soit l'ID était déjà doublé dans ton ancienne base, soit tu t'es emmêlé les pinceaux quelque part... Bon courage! Cdt, -- Jean-Baptiste Le 22 décembre 2009 05:42, Adrien Coquio <[email protected]> a écrit : > Je me retrouve devant un problème incompréhensible (jusqu'à ce que je > trouve/on me donne la solution ;-) ) > J'utilise, comme précisé avant la librairie sequel. > DEPA est une bdd contenant une colonne COMMUNES ayant une clé primaire > sur le champ `cle` SMALLINT(5) > CB est une bdd contenant une colonne communes ayant une clé primaire > sur le champ `id` INT(11) > > J'ai le code suivant : > > DEPA.transaction do > communes = CB[:COMMUNES] > communes.each do |commune| > DEPA[:communes].insert(:id => commune[:cle]) > end > end > > Lorsque je l'execute j'obtient l'erreur suivante : > Mysql::Error: Duplicate entry '246' for key 1 (Sequel::DatabaseError) > > Incompréhensible car cle étant une cle primaire, elle ne peut pas être > dupliqué... > > Lorsque je relance le meme script j'obitent l'erreur suivante : > Mysql::Error: Duplicate entry '247' for key 1 (Sequel::DatabaseError) > > Et finalement si j'execute ce script un certains nombres de fois, > l'erreur disparait et le script est bien exécuté !! > J'ai pensé que cela pouvait venir du fait que `cle` soit un SMALLINT > (5) mais quand je modifie le type de la colonne pour un INT j'ai le > même résultat ! > > Je comprend pas du tout, si quelqu'un peut m'aider MERCI ! > > adrien > > On Dec 20, 3:44 pm, Adrien Coquio <[email protected]> wrote: > > Génial !! > > C'est exactement ce qu'il me fallait, pas une solution miracle, je me > > doutais qu'il n'en existe pas mais une méthode pour faire ca > > efficacement. > > Merci beaucoup :) > > > > adrien > > > > On Dec 20, 8:38 am, Bruno Michel <[email protected]> wrote: > > > > > Salut, > > > > > je suis en train de faire la même chose pour migrer les données de > > > LinuxFr.org de la version templeet vers la future version Rails. Je > n'ai > > > pas trouvé de solution miracle, mais je m'en suis pas trop mal sorti > > > avec sequel[1]. Les scripts sont sur github[2], donc tu peux jeter un > > > coup d'œil pour voir si ça te convient. > > > > > [1]http://sequel.rubyforge.org/documentation.html > > > [2]http://github.com/nono/migration-linuxfr.org > > > > > ++ > > > Bruno > > > > > > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] > -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
