Railsで初期テーブルデータをseedで設定
Railsでアプリケーションを作って、
そのアプリケーションを運営する中で、
現在のテーブルの項目を調整することは、
実際によくあることだと思います。
そんな中で、
- 既存のカラムを削除する
- 既存のカラムを変更する
- 新規のカラムを追加する
という時に、
既存のテーブルに対して、
変更を加えた際に、
rails db:migrate:reset
などを実行してしまうと、
全てのテーブルがクリアされてしまう。
以下の記事の中のコマンドです。
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が表示されるので、
データベースの方で実データを確認すると、
うまく初期データが追加されており、
問題なく処理が完了しました。
スキルを使って、就職/転職/副業する時のサイト
プログラミングのスキルなどを、自分なりに高めた上で、
自分のスキルをアピールして就職や転職を行い、年収をあげるか、
副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。
まずはできる範囲で取り組むことで、
少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。