13

RailsコンソールでModel.delete_allを使用してテーブルを削除していますが、ID番号がリセットされず、中断したところから開始することに気付きました。テーブルを削除してIDを1から開始するにはどうすればよいですか?

それは実際には大したことではありません、私はただ興味があり、この方法でそれがよりきれいになると思います。ありがとうございました!

4

7 に答える 7

7

ほとんどのデータベースには、使用時に自動的にインクリメントするシーケンスの概念があります。ActiveRecordは、基盤となるデータベースシーケンスを使用して主キーを作成します。このgem(https://github.com/splendeo/activerecord-reset-pk-sequence)は、データベースによってはリセットに役立つ場合があります。

于 2013-02-28T20:09:15.057 に答える
1

DBによって異なります。アプリでは、IDが1で始まり、順番に進むという事実に依存するべきではありません。また、新しいレコードのために常に増加するという事実に依存するべきではありません。新しいDBが必要な場合はrake db:drop、いつでも実行できますrake db:create

于 2013-02-28T20:09:38.067 に答える
0

一発ギャグ

rake db:drop && rake db:create && rake db:migrate

ビジネスに戻る

于 2013-02-28T20:12:22.170 に答える