Docker + Railsでテーブル・カラムを弄る時の備忘録

IT

こんにちは。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の環境でデータベーステーブルに新しいカラムを追加する方法を、簡単に、基礎から紹介しました。定期的に忘れて、どうだったけ・・・・となってしまうので、備忘録として残しましたが、誰かのお役に立てば幸いです。

それでは。

タイトルとURLをコピーしました