j'ai un peu continué avec une autre idée, j'ai viré le begin rescue et
j'ai fait une recherche sur ma valeur avant chaque insertion... c'est
un peu barbare, mais cela fonctionne, voici ma portion de code dans
mon fichier de migration:
CSV::Reader.parse(File.open("#{RAILS_ROOT}/db/
listaClients.csv", 'rb')) do |row|
test = Company.find(:first, :conditions => "cnpj='#{row[2]}'")
if(test == nil)
this_row = {
:razao_social => row[0],
:nome_fantasia => row[1],
:cnpj => row[2],
:rua => row[3],
:cep => row[4],
:bairro => row[5],
:cidade => row[6],
:estado => row[7],
:telefone => row[8]
}
company = Company.new(this_row)
company.save!
else
printf("elimination doublon!: %s\n", row[2])
end
end
dans mon cas je ne teste qu'un champs, car il doit être unique, si on
test sur plusieurs avec beaucoup de données... ca doit prendre plus de
temps.
Ici le remplissage de la table a duré 36,78 s pour environs 2392
enregistrements (2283 après élimination des doublons), sans filtrer
les doublons l'importation a duré 33,83s cela fait environs 10% de
temps en plus (moins de 4s pour filtrer).
Bonne soirée
Denis
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---