どうもこんにちは。
今回はRails開発で使うrails db:
から始まるコマンドをまとめてみました。
データベース作成
以下のコマンドでアプリケーションで使用するためのデータベースを作成します。
$ rails db:create
データベース削除
以下のコマンドでアプリケーションで使用していたデータベースを削除します。(データやテーブル、カラムなどが全て消えます。)
$ rails db:drop
データベースを最新にする
以下のコマンドでデータベーススキーマの状態を最新の状態にします。
$ rails db:migrate
マイグレーションファイルは以下のコマンドで生成します。
rails g migration AddAgeToUserModel
生成されるマイグレーションファイルは以下のようになります。
class AddAgeToUserModel < ActiveRecord::Migration[6.0]
def change
# カラムを増やしたい時
add_column :users, :age, :integer
# カラムを減らしたい時
remove_column :users, :initial, :string
end
end
マイグレーションファイルの詳しい書き方は後日投稿します。
データベースを最新の状態から巻き戻す
以下のコマンドで最新の状態のデータベーススキーマを元に戻します。
$ rails db:rollback
データベースのマイグレーションの状態を確認する
以下のコマンドでマイグレーションの状態を確認します。
$ rails db:migrate:status
このコマンドはdb/migrate
ディレクトリ内にあるマイグレーションファイルがデータベーススキーマに反映されているかされていないかを確認できます。
up
となっていれば反映されていて、down
となっていれば反映されていません。
初期データを投入する
以下のコマンドでdb
ディレクトリ内にあるseeds.rb
の内容を反映させます。
$ rails db:seed
seeds.rb
の内容は以下のような形です。
User.first_or_create([
{ id: 1, name: '山田太郎' },
{ id: 2, name: '田中花子' }
])
ファイルに定義されたデータスキーマをロードする
以下のコマンドでdb
ディレクトリにあるschema.rb
の内容をデータベースに反映させます。
$ rails db:schema:load
現在のデータスキーマをファイルに出力する
以下のコマンドで現在のデータベースのスキーマ情報をdb
ディレクトリのschema.rb
に反映させます。
$ rails db:schema:dump
データベース作成+スキーマロード+初期値投入
以下のコマンドで3つの動作を一括して行えます。
$ rails db:setup
データベース削除+再作成+スキーマロード+初期値投入
以下のコマンドで4つの動作を一括して行えます。
$ rails db:reset
データベースが存在するしないで処理が変わる
以下のコマンドでは、データベースが存在しない場合は、rails db:setup
と同様の動作、存在する場合にはrails db:migrate
と同様の動作がされます。
$ rails db:prepare
データベースのスキーマバージョンを表示する
以下のコマンドを実行すると、データベースのスキーマバージョンが表示されます。
$ rails db:version
データベースコンソールを開く
以下のコマンドを実行すると、データベースのコンソールを開きます。
$ rails db:console
データベースの環境設定を行う
以下のコマンドを実行するとデータベースの環境設定を行います。
$ rails db:environment:set
データベースの構造をファイルに出力する
以下のコマンドでデータベースの構造をdb/structure.sql
に出力します。
$ rails db:structure:dump
データベースの構造をファイルからロードする
以下のコマンドでdb/structure.sql
に定義されているデータベース構造をロードする。
$ rails db:structure:load
テスト用のフィクスチャデータをロードする
以下のコマンドでテストで使用するフィクスチャデータをロードします
$ rails db:fixtures:load
テスト用のデータベースを開発データベースのスキーマに合わせる
以下のコマンドでテストデータベースのスキーマを開発データベースのスキーマに合わせます。
$ rails db:test:prepare
テストデータベースにスキーマをファイルからロードする
以下のコマンドでテストデータベースのスキーマをファイルからロードします。
$ rails db:test:load
まとめ
開発で少なくとも使用するのは、以下のコマンドかなと思います。
$ rails db:create
$ rails db:drop
$ rails db:migrate
$ rails db:rollback
$ rails db:migrate:status
$ rails db:seed
もっとデータベースのことを勉強した方が良さそうですな。。。