2016-09-29 3 views
0

Je réimprime une base de données relativement volumineuse avec des données statiques mises à jour et des valeurs mises à jour avec lesquelles les utilisateurs interagissent. Cependant, j'ai remarqué que réanimer la base de données efface toutes les tables jointes pour Has_and_belongs_to_many tables (toutes les autres données utilisateur, et les tables restent inchangées).Préservation des données de la table jointe lors de la réimplantation d'une base de données

Quelqu'un a-t-il trouvé un moyen de contourner ce problème en conservant les données lors du réensemencement?

J'utilise Rails & Postgresql

+0

Si vous insérez de nouvelles données dans le cadre de votre réensemencement, vous devrez également créer ces associations. Les associations restantes avant l'ensemencement sont conceptuellement suspectes: incomplètes, incorrectes, etc. Aussi, quand vous dites reseed, parlez-vous de 'rake db: drop db: créez db: migrate db: seed'? ou une charge manuelle db? – jaydel

+0

@jaydel Je ne laisse pas tomber les tables. J'écris simplement les données avec 'rake db: seed'. Et mon fichier de départ pour chaque table ressemble à ceci: EG: \t 'Industry.destroy_all',' ActiveRecord :: Base.connection.execute ("TRUNCATE TABLE industries RESTART IDENTITY") '. 'Industry.create (nom: 'Comptabilité')' etc – Stephen

Répondre

1

Comme mentionné ci-dessus, vous devrez recréer les associations. Vous pouvez le faire assez directement dans votre fichier de départ.

Vous pouvez également regarder dans la gemme seed dump. Cela vous permettra d'instantaner vos relations HABTM, puis de les exporter dans votre fichier db/seeds.rb (ou autre).