こんにちは。YamaC / ヤマシー です。今回は、Railsアプリデータベースのテーブルを追加したり、名前を変更したりする方法を備忘録として残しておきます。
マイグレーションファイルを作る
Railsのマイグレーションファイルを生成するには、以下のコマンドを実行します。今回は、’kakeibo’ テーブルに ‘payment_flag’ を追加した時の備忘録として例を記載していきます。
docker execでコンテナの中に入る
毎回忘れるので、めちゃくちゃ基礎・前提から書いていきます。一番最初は、docker execコマンドで、実行中のコンテナの中に入ります。
docker exec -it <コンテナ名またはコンテナID> bash(-itの意味はよくわかってないですが、これで入れます)
マイグレーションのコマンドを実行
以下のようなコマンドを入力して、マイグレーション用のファイルを生成します。
rails generate migration add_columnすると、db / migrate のなかに、20240518XXXXXX_add_column.rbみたいな、マイグレーション用のファイルが出来上がります。
マイグレーションファイルの中身を編集
作成されたマイグレーションファイルを開いて、中身を編集します。今回は、kakeiboテーブルの中に、payment_flagのカラムを追加したい(Integerで、nullはfalse)ので、下記のように編集しました。
class AddColumn < ActiveRecord::Migration[7.0]
def change
add_column :kakeibo, :payment_flag, :integer, null: false
end
endマイグレーションを実行
以下のコマンドを打ってマイグレーションを実行します。
rails db:migrateこれで、kakeiboテーブルにpayment_flagカラムが追加されます。
補足(戻したい時・マイグレーションファイルについて)
例えばマイグレーションをした後に、名前を間違えてしまった!とか、やっぱり無かったことにしたい!なんて場合は、ロールバックができるので、以下のようなコマンドを実行します。
rails db:rollbackこれで、直前に行ったマイグレーションがなかったことになるので、直前まで編集していたマイグレーションファイルを編集し直し、もう一度rails db:migrateをしましょう。
まとめ
今回は、DockerとRailsの環境でデータベーステーブルに新しいカラムを追加する方法を、簡単に、基礎から紹介しました。定期的に忘れて、どうだったけ・・・・となってしまうので、備忘録として残しましたが、誰かのお役に立てば幸いです。
それでは。

