2016-09-29 109 views
0

我正在重新生成一个相当大的数据库,其中包含更新后的静态数据和用户参与的更新值。但是,我注意到重新播种数据库将清除Has_and_belongs_to_many表(所有其他用户数据和表保持不变)的所有连接表。重新编辑数据库时保留连接表数据

有没有人解决了这个问题,在重新播种时数据会被保留下来?

我使用Rails & PostgreSQL的

+0

如果您要插入新数据作为重新播种的一部分,您还必须构建这些关联。在播种之前留下的任何关联在概念上都是可疑的:不完整,不正确等。另外,当你说种子是你谈论'rake db:drop db:create db:migrate db:seed'?或一些手动数据库负载? – jaydel

+0

@jaydel我其实不会丢掉表格。我只是用'rake db:seed'来写数据。我的每个表的种子文件如下所示:EG:\t'Industry.destroy_all','ActiveRecord :: Base.connection.execute(“TRUNCATE TABLE industries RESTART IDENTITY”)'。 'Industry.create(名称:'会计')'等 – Stephen

回答

1

正如上面提到的,你将需要重新创建关联。你可以在你的种子文件中相当直接地做到这一点。

您也可以查看seed dump宝石。这将允许您快照您的HABTM关系,然后将它们导出到您的db/seeds.rb(或其他)文件中。