我正在使用datamapper将大量nokogiri-scraped数据存储到行
这组数据每周都在变化,有时我想让用户“清除帖子”,以便他们重新获取新数据。
在发布'/ purge'的方法里面做(sinatra)我有以下
Post.all.destroy
问题是它将密钥保留为自动递增的数量。虽然这组数据与其他表相关联,但其他数据也被清除,所以我知道密钥没有问题匹配。每次清洗,我的钥匙在一段时间后会变得很大(40,000)。
我不使用 DataMapper.auto_migrage!的原因是因为有一个我不想触摸的特定表(没有关联)(设置表)。
PS。我标记了activerecord,即使我正在使用datamapper,因为我假设这个过程非常相似,只是语法不同。
答案 0 :(得分:2)
AUTO INCREMENT
值的责任属于数据库引擎,而不属于ORM。因此,如果要重置其值,则必须发出如下查询:
ALTER TABLE theTableInQuestion AUTO_INCREMENT=desired_value
可能你会有类似的东西:
adapter = DataMapper.repository(:default).adapter
adapter.execute('ALTER TABLE theTableInQuestion AUTO_INCREMENT= ? ', desired_value);