【Rails基礎】データベースのカラムを追加・削除する方法




Railsのデータベースにカラムを追加・削除したい!

Railsアプリを作っていると

既存のデータベースにカラムを追加・削除したい時ありますよね。

 

例えば、usersテーブルに

  • name
  • email
  • nickname

というカラムがあったけど、

「画像のカラム(image)も作ってみたいなー」

とか

「ニックネームのカラム(nickname)いらねーなー」

というシチュエーションですね。

 

そんな時に備えてマスターしておきたいのが、

Railsでテーブルのカラムを追加・削除する方法

です。

今日はこちらの方法を紹介しますよ。

※ 利用環境は以下の通りです。

Rails バージョン 2.5.0
Ruby バージョン 5.2.4.1

 

Railsでカラムを追加する方法

まずカラム追加する方法から。

 

Step1. マイグレーションファイルを作成

データベースをいじる前に、マイグレーションファイルを生成しましょう。

マイグレーションファイルとは、データベースの作成・変更に必要なファイルです。

データベースの設計図、下書きと例えられることが多いです。

 

Railsではいきなりデータベースの中身を編集しません。

マイグレーションファイルを作り、変更の要件を書き込み、実行してデータベースの中身を書き換えます。

そのマイグレーションファイルを作るコマンドはズバリ、

です。

 

例えば、

とすれば add_image_to_users というマイグレーションファイルが誕生するのです。

マイグレーションファイルの名前はぶっちゃけなんでもいいんですが、名前に

  • テーブル名
  • カラム名

を含ませると、なおよし。

マイグレーションファイルを見返した時、「生誕の理由」を察しやすいでしょう。

ただ、ネーミングは自由で規則はありません。

 

Step2. マイグレーションファイルを編集する

マイグレーションファイルを編集します。

マイグレーションファイルの場所は、Railsアプリの階層でいうと

db > migrate

に入っていますね。

 

さきほど誕生したマイグレーションファイルは、肝心の部分は白紙。

つまり、自分で変更内容を書かなければなりません。

具体的にいうと、

というchangeメソッドの中身を書いていきます。

 

カラムを追加したい時は、changeメソッドに、

add_column :テーブル名, :カラム名, :データ型

を記載しましょう。

 

例えば、usersテーブルにimageカラム(string型)を追加したいときは、こんな感じですね。

 

Step3. マイグレーションファイルを実行

さて、あとはマイグレーションファイルを実行するだけ。

実行のコマンドは、

ですよ。

コマンドラインで発動しちゃってください。

 

 

カラムを削除したい時はどうする??

以上、Railsのデータベースにカラムを追加する方法でした。

それでは、カラムを削除する方法はどうなんでしょうかね。

 

じつは、削除方法も簡単。

さっきのStep 2で「メソッド名を変えるだけ」です。

お察しの通り、add_columnではなくremove_columnにすればいいのです。

だから、先ほどの例で出したchangeメソッドはこうなります。

これでマイグレーションファイルを同じように

を実行すると、指定カラムを削除できますね。

 

 

複数のカラムを同時に追加・削除したい時はどうする??

が、しかし時には、

1つのマイグレーションファイルで「複数のカラム」を追加・削除したい時がありますよね。

1カラムごとに1マイグレーションファイルを作っていたら日が暮れちゃいますからね。

そんな時は、シンプルに、

changeメソッド内に複数の命令文を書けばOK。

 

例えば、

としてやると、imageカラムだけなく、birthdayカラムまでusersテーブルに追加できちゃうわけです。

この方法は何もadd_columnだけでなく、remove_columnを混ぜても構いません。

カラムの追加・削除はRailsアプリで必要になる技なので、マスターしておきましょう。

 

それでは!

Lin

 

【参考記事】

Pocket
LINEで送る




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




コメントを残す

メールアドレスが公開されることはありません。