ActiveRecordのid自動採番を設定し直す

(ActiveRecordに限った話ではないんですが)

環境

postgresql (9.2.3)
activerecord (4.0.0.beta1)

概要

seed.rbだとかで訳あって、本来ならインクリメントされていくidに対して数値を指定してレコードを作成した場合、のちのちでidが被ってしまうのでそれを避けるために、シーケンスを降り直す方法を書く。

# db/seed.rb 
Word.create(id: 1)
Word.create(id: 2)
Word.create(id: 3)
.
.
.


connection = ActiveRecord::Base.connection();
connection.execute("select setval('word_id_seq',(select max(id) from words))")
$ rails console
Loading development environment (Rails 4.0.0.beta1)
[1] pry(main)> Word.create  # ←idが最大値を振ってくれる