gpt4 book ai didi

ruby-on-rails - Seeds.rb 设置主键值,导致重复键错误

转载 作者:行者123 更新时间:2023-11-29 11:41:39 24 4
gpt4 key购买 nike

在我在 Heroku 上用于生产的 Rails 4 应用程序中,我为初始数据集设置了一个 seeds.rb 文件。由于一些记录具有特定的主要 ID 至关重要,比如在“事件”表中,我已经设置了这些。一切顺利。

直到。直到我需要向事件表中添加新事件。添加新记录的失败次数与该表中的记录数一样多,而排序器会 catch 来。 (例如,如果我有三个记录,新记录创建失败三次,第四次成功)。

问题:如何让 Heroku postgres 数据库上的主 ID 计数器在我的 seeds.rb 文件中设置的最高主 ID 之后启动?如果您不知道,我应该用谷歌搜索哪些术语?

理想情况下,这个解决方案是自动的,而不是每次我为数据库做种时都必须打开 psql。

提前致谢。

最佳答案

:id 列是一个自增列。因此,您无法控制它使用的值——它总是使用其内部计数器中可用的下一个 id。如果这是我,我会找到其他方法来识别那几条记录,而不是通过 :id。例如,也许您可​​以通过 :name 或其他一些特殊属性来引用记录? (如果你走这条路,不要忘记索引你找到的属性!)

然后,我会使用 seed_fu gem执行幂等播种,就像你想要的那样。使用幂等播种,如果记录已经存在,那么它将被更新(如果有任何更新要执行;如果没有,则它是空操作)。这样您就没有异常(exception),您可以随时添加新记录或更新现有记录。

关于ruby-on-rails - Seeds.rb 设置主键值,导致重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23900515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com