テーブルにデータをID1から登録する
こんにちは、ぐっちと申します。
カテゴリーデータ用のSEEDファイルが完成し、意気揚々としていた所チームメンバーから「とても良いのですが、2回目以降SEEDファイルを実行した際に、IDが変わってしまうので他のテーブルデータと齟齬が生じてしまいます。どうにかなりませんか?」と言われました。
確かに2回目以降実行されても良い様に、ファイルの頭に
Category.delete_all
を記述していたのですが、IDまでは頭がまわりませんでした。
色々調べた所、SQLで ALTER TABLE `テーブル名` auto_increment = 1; を実行する事で、auto_increment 機能がリセットされIDが1から登録される様になると分かりました。
しかし、毎回ターミナルでコマンドを打つのも煩わしいので、何かないかさらに調べると、ActiveRecord::Base.connection.execute というActiveRecordで生SQLを使えるメソッドがある事が分かり
Category.delete_all
を記述し、何度SEEDファイルを実行してもテーブルの内容が変わらない様にする事が出来ました。
今回も便利なメソッドがある事が分かりまた1つ勉強になりました。
ここまで読んでくださり、ありがとうございました。
ツイッターで日々の学習をつぶやいています