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]

Répondre à