【发布时间】:2026-01-19 23:15:01
【问题描述】:
是否可以在种子文件的顶部包含一行简单的代码,以便在插入新种子数据之前清除每个表,而无需运行任何 rake 命令来回滚表或数据库?
我在想这样的事情:
[Foo, Bar].each{|class| class.destroy_all}
关键是我想在每个新插入从 id 开始的地方添加新数据:1. 我要避免的是删除一个有 100 行的表,当我添加新数据时它从 101 开始。
【问题讨论】:
-
您使用的是哪个数据库?
-
我在本地使用 SQLite,并通过 Heroku 使用 PostgreSQL。这是我的第一个 SO 问题......我如何标记它已回答?此外,在做了更多研究之后,我发现了 database_cleaner gem,我刚刚在种子文件和 Bingo 的顶部添加了
DatabaseCleaner.clean_with(:truncation)! :) 感谢 Vishal 的帮助!
标签: ruby-on-rails ruby database sqlite sqlite3-ruby