2009-09-29 5 views
0

J'ai besoin de partager un objet (qui a des relations très complexes avec d'autres objets) entre 2 ou 3 bases de données sql complètement séparées . Idéalement, j'aimerais avoir un script qui est scripts/dump_object nom_classe object_id> fichier et script/fichier load_object.Comment vider un objet complexe ruby ​​on rails sur un disque pour pouvoir charger cet objet dans d'autres bases de données

J'ai essayé yaml_db (qui vide tout le DB - ce qui n'est pas optimal) et il meurt avec des erreurs de contrainte de clé étrangère. J'ai essayé d'écrire ceci moi-même en utilisant des réflexions pour traverser les relations du modèle mais je me suis enlisé pour essayer de comprendre dans quel ordre créer les objets lors du chargement.

Puisqu'il semble qu'une solution programmatique à ceci est possible, je suis choqué que je ne peux pas trouver un extrait ou un téléchargement qui le fait déjà. Quelqu'un a déjà traversé ça?

Répondre

1

Vous pouvez jeter un oeil au code source du plugin deep cloning (qui semble assez simple) pour avoir une idée de comment faire le script vous-même. En règle générale, vous devez obtenir l'objet et toutes les associations souhaitées, puis effectuer un vidage yaml, puis vous pouvez partager votre code: P

+0

D'accord. Une décharge de yaml ou une décharge de marshal est tout ce dont vous avez besoin. – hgmnz

Questions connexes