はじめに
railsでのDBテーブルの作成方法、カラムの追加など一連のデータベース操作についてまとめます。
railsでのテーブルの生成方法
テーブルを生成しましょう。
①テーブルのmigrationファイルを作成します。具体的な作成コマンドとしては以下になります。
$ rails g model モデル名 フィールド:型
※例えばpostモデルでnameカラム(string型)とuser_idカラム(integer型)を作成したい場合は以下になります。
$ rails g model Post name:string user_id:integer
②コマンドを打ち込むとmigrationファイルが新規で出来上がっているはずなのでそれを以下のコマンドで実行します。
実行後はdbサーバー上にpostsテーブルが出来上がります。
$ rails db:migrate
カラム追加方法
既に作成したテーブルにカラムを追加したい場合は下記の手順で追加します。
①追加したい項目を下記のようにコマンド入力する。
rails g migration Addカラム名Toテーブル名 カラム名:データ型
# 例えば既にあるpostテーブルにcategoryカラム(integer型)を作成したい場合は以下になります。
rails g migration AddCategoryToPosts category:integer
②db/migrateフォルダにマイグレーションファイルが出来上がっていますので、確認、必要があれば追記してください。
下記ファイルにはhogehogeカラムを追記しています。
class AddCategoryToPosts < ActiveRecord::Migration[5.2]
def change
add_column :posts, :category, :integer
add_column :posts, :hogehoge, :text #追記
end
end
③編集終わりましたら、以下のコマンドで実行します。
これでテーブルにカラムが追加されます。
$ rails db:migrate
カラムの型の変換
既にあるテーブルのカラムの型を変えたいときは以下の手順で変更を行います。
カラム追加と似た手順となります。
①型変更したいカラムを下記のようにコマンド入力しmigrationファイルを作る。
$ rails g migration change_data_カラム名_to_テーブル名
# 例えばpostテーブルのhogehogeカラムを型変更したい場合は以下になります。
rails g migration change_data_hogehoge_to_posts
②db/migrateフォルダにマイグレーションファイルが出来上がっていますので、class内に以下のメソッドを追加してください。
def change
change_column :posts, :hogehoge, :integer
end
③編集終わりましたら、以下のコマンドで実行します。
これでテーブルにカラムが追加されます。
$ rails db:migrate
終わりに
この記事で誤っている箇所や追記したほうが良い点がありましたらコメント欄などでご指摘いただけますとありがたいです!
ActiveRecordと通常のsqlコマンドは書き方違うので勉強必要ですね・・