I have found the “pure SQL” answers to this question. Is there a way, in Rails, to reset the id field for a specific table?
Why do I want to do this? Because I have tables with constantly moving data – rarely more than 100 rows, but always different. It is up to 25k now, and there’s just no point in that. I intend on using a scheduler internal to the Rails app (rufus-scheduler) to run the id field reset monthly or so.
I have found the pure SQL answers to this question. Is there a way,
Share
I came out with a solution based on hgimenez’s answer and this other one.
Since I usually work with either Sqlite or PostgreSQL, I’ve only developed for those; but extending it to, say MySQL, shouldn’t be too troublesome.
Put this inside lib/ and require it on an initializer:
Usage:
EDIT: Since the most usual case in which you will want to do this is after clearing a database table, I recommend giving a look to database_cleaner. It handles the ID resetting automatically. You can tell it to delete just selected tables like this: