我的分类模型中有几条记录。所有这些都是测试数据。现在我想清除数据。
如果我发出Category.destroy_all或Category.delete_all,则删除所有记录。但是,任何新创建的记录都不以id 1开头。如果我之前有10条记录,则在我销毁之前的记录之后的新类别从11开始。
如何从1强制重启id?
答案 0 :(得分:0)
ActiveRecord::Base.connection.execute("TRUNCATE TABLE #{table_name}")
您可以选择运行它:
在rails控制台
如果您没有控制台访问权限,请在seed.rb文件中。 (在类别模型中创建一个只运行一次的方法。(rake db:seed
))
app / model / category.rb:
def truncate_me!
ActiveRecord::Base.connection.execute("TRUNCATE TABLE #{table_name}")
end
分贝/ seed.rb
Category.truncate_me!
3。在迁移中
如果您有权访问数据库,还可以运行实际的TRUNCATE查询。
答案 1 :(得分:0)
您可以使用以下命令重做迁移:
rake db:migrate:redo VERSION=your_category_migration_version
这将删除类别表并重新创建它。如果您有其他迁移更改类别表,那么您也需要运行它们。
执行上述rake任务后,您可以运行种子任务。