我有一个使用 rake db:seed 执行的带有种子的 Rails 项目。这反过来加载了 db/seeds 目录中的 RB 文件,该目录又执行如下操作:
Fixtures.create_fixtures("db/seeds","projects")
表格中有一个 projects.yml
project_name1:
property: value
project_name2:
property: value
在项目 SQL 表中有现有的项目记录。YML 文件中的一些是新的,而另一些则不是。我花了几天时间运行 DB 种子,它会更改一些项目 ID,但不会更改其他项目 ID。但它不会复制那些它没有更改 ID 的那些,即使它们都在 YML 文件中。所以有些记录是可以的,其他的它会删除并重新添加一个新的ID(或者只是直接更新ID,不确定是哪个)。
然后它突然停止这样做。我像往常一样删除并重新加载我的数据库(使用 sql 转储恢复到干净、未更改的状态),但 DB 种子运行完美,只保留现有数据,只添加新数据(即使所有数据都在 yml 文件中)无需触及现有的 ID。
然后突然又开始了。我花了两周时间在谷歌上搜索有关种子、现有数据播种和 ID 更新的任何信息,但都没有运气。
任何帮助当然表示赞赏。