Railsで初期テーブルデータをseedで設定

Railsでアプリケーションを作って、

そのアプリケーションを運営する中で、

現在のテーブルの項目を調整することは、

実際によくあることだと思います。

そんな中で、

  • 既存のカラムを削除する
  • 既存のカラムを変更する
  • 新規のカラムを追加する

という時に、

既存のテーブルに対して、

変更を加えた際に、

rails db:migrate:reset

などを実行してしまうと、

全てのテーブルがクリアされてしまう。

以下の記事の中のコマンドです。

こちらの対応ではなく、

対象のテーブルだけ、

設定情報を反映させることが必要でした。

この時の対応は、

こちらの記事にメモしています。

今回は、

この対応の後に、

テーブルの初期データ作成のために、

seedでの処理を動かした時のメモです。

備忘録として記載しておきます。

Railsのマイグレーションの状況確認

まずは、

Railsのマイグレーションで作成したテーブルの、

作成状況をコマンドで確認します。

rails db:migrate:status

のコマンドを実行すると、

$ rails db:migrate:status
Running via Spring preloader in process 428491

database: sample

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20220101000000  Sample1
   up     20220207000000  Sample2
   up     20220207010000  Sample3
   up     20220207020000  Sample4
   up     20220207030000  Sample5
   up     20220208000000  Sample6
   up     20220222010000  Sample7
   up     20220223000000  Sample8

このようにRailsのマイグレーションの状況が表示されます。

こちらを見てわかるように、

  • Railsの各種テーブルのステータスが「up」の状態である

ということが言えます。

「down」だとうまくテーブル自体の作成が行われていないので、

まずは、こちらを確認、対応してください。

Railsでseedを使って初期テーブルデータを作成

先ほどのテーブルの一覧に対して、

必要なテーブルの初期データを設定します。

  • 指定テーブルの初期データを「seeds.rb」に記載
  • Railsコマンドで「seed」を実行

という手順で対応します。

設定ファイルとして、

「seeds.rb」

については、

db/seeds.rb

にあるので、

こちらのファイルで初期設定データを準備してください。

Railsコマンドで初期データ追加

先ほどの初期データ設定ファイルを準備した上で、

実際のRailsコマンドを実行します。

基本は、

rails db:seed

ですが、

自分の環境に合わせて

rails db:seed RAILS_ENV=development
rails db:seed RAILS_ENV=test

このように環境指定することもできます。

実際に実行すると、

$ rails db:seed
Running via Spring preloader in process 2735808

このように

実施された結果のプロセスIDが表示されるので、

データベースの方で実データを確認すると、

うまく初期データが追加されており、

問題なく処理が完了しました。

スキルを使って、就職/転職/副業する時のサイト

プログラミングのスキルなどを、自分なりに高めた上で、

自分のスキルをアピールして就職や転職を行い、年収をあげるか、

副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。

まずはできる範囲で取り組むことで、

少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。

おすすめ書籍

広告

おすすめ記事