LoginSignup
3
1

【Rails】rails db: から始まるコマンドまとめ

Last updated at Posted at 2023-11-24

どうもこんにちは。

今回は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

もっとデータベースのことを勉強した方が良さそうですな。。。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1