Ce n'est pas vraiment une question à propos de rails mais cela a à
voir avec l'application rails que je suis en train de développer.
J'arrive à la fin de la phase de développement de mon application et
je dois maintenant migrer les donnés de l'ancien logiciel (programmé
'salement' en php/mysql) vers ma bdd.
Mon problème est que la bdd existante est vraiment mal organisée, j'ai
donc développé la nouvelle version du logiciel sans prendre en compte
l'organisation de la base actuelle.
Je vais devoir exécuter des requêtes sur la base existante, traiter
les résultats puis les insérer dans la bdd de mon application en
rails. Je pense pour l'instant faire ca avec des scripts ruby en
utilisant la librairie mysql, avez-vous une meilleure suggestion ?
Je n'ai jamais fait une telle opération et ca s'annonce compliqué est
long, si il y a un moyen reconnu comme étant le meilleur pour faire
ca, je suis preneur !
Merci
adrien
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
adrien
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
--
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 rails...@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse railsfrance...@googlegroups.com