This gem allows resetting the id of an AR table to 0. It is useful after a delete_all command. It works in Postgres, Sqlite and MySQL up to now.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install activerecord-reset-pk-sequence
This gem adds a method to the class ActiveRecord::Base. Now it is shown an example of how it works.
The first thing is to install the gem as it is explained before.
After that you need a model. If you don't have one you can create it directly with rails as shown.
rails g model Person name:string
Then you do a database migration with:
To test the gem you have to start a rails console:
And then write the following commands:
p = Person.create(:name => 'David') p = Person.create(:name => 'James')
You will see that the have the id's 1 and 2, then delete all elements in the table
If you create a new person now you will notice that the id is going to be 3
p = Person.create(:name => 'Peter') id = p.id => 3
And this is what this gem is for, to reset the id's after deleting the elements in a table, to check if it works delete all elements and then run reset_pk_sequence method, after that create a new "Person" and check if its id is 1.
Person.delete_all Person.reset_pk_sequence p = Person.create(:name => 'Jhon')
So to sum up to use this gem you only have to add the call to the new method after deleting all the elements in a table.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Added some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request