2
0

More than 3 years have passed since last update.

【Ruby on Rails】データベース操作まとめ(rails db:**)

Posted at

データベース本体に関する操作

rails db:create

データベースの作成

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)

rails db:drop

データベースの削除

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)

テーブルに関する操作

rails db:migrate

migrationファイルを実行し、テーブルを作成する(全てのmigrationファイルが対象)

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)
  • VERSION
     指定したバージョン以前のmigrationを全てupに、それより後のmigrationを全てdownにする

rails db:rollback

最新のmigrationを1つdownにする

<使用可能オプション>

  • STEP
     downにするmigrationの数を指定する
  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)

rails db:migrate:status

migrationの状態を表示する

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopment)

rails db:migrate:up

VERSIONオプションで指定したmigrationをupにする

<使用可能オプション>

  • VERSION
  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)

rails db:migrate:down

VERSIONオプションで指定したmigrationをdownにする

<使用可能オプション>

  • VERSION
  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)

rails db:schema:dump

現在のデータベースの状態に合わせて、db/schema.rbを更新する

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopment)

rails db:schema:load

db/schema.rbにあわせて、データベースを更新する(migrationファイルを参照しない)

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)

レコードに関する操作

rails db:seed

dbディレクトリのseeds.rbファイルを実行し、レコードを作成する

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopment)

rails r ファイルpath例:rails r db/seeds/test.rb

特定のseedファイルを実行し、レコードを作成する

いくつかの操作をまとめた物

rails db:setup

rails db:create
rails db:schema:load
rails db:seed
をまとめた物

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest ※seedはdevelopmentのみ)

rails db:reset

rails db:drop
rails db:create
rails db:schema:load
rails db:seed
をまとめた物

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest ※seedはdevelopmentのみ)

rails db:migrate:redo

rails db:rollback
rails db:migrate
をまとめた物

<使用可能オプション>

  • STEP
     やり直すmigrationの数を指定する
  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)
  • VERSION
     対象のmigrationを指定する

rails db:migrate:reset

rails db:drop
rails db:create
rails db:migrate
をまとめた物

<使用可能オプション>

  • rails_ENV
     環境を指定する(デフォルトはdevelopmentとtest)
  • VERSION
     指定したバージョン以前のmigrationを全てupに、それより後のmigrationを全てdownにする

補足

rakeとrailsの違い

Ruby on Railsのデータベース操作のコマンドを調べていると、rails ~というものとrake ~というものの2種類が見つかります。
これらは、Railsのバージョン4まででは区別をして使用していた物を、バージョン5より区別がなくなったそうなので、バージョン5以降を使用する場合は、全てrails ~で実行できる、とのことです。

schema.rbとは

migrationファイルは、それぞれのテーブルの設計図のような物です。
それに対してschema.rbは、現在のデータベースの構造を表した設計図のような物のようです。
すでに問題なく動いている環境をコピーする場合、migrationファイルではなくschema.rbを元にデータベースを構築した方が間違いの元を減らせる、という風にRailsの公式ドキュメントに記載があります。

参考ページ

Active Record Migrations — Ruby on Rails Guides

rails db:〇〇 まとめ - Qiita

Ruby on Railsでよく使う rake db コマンドまとめ13選 | caramelCase

RoRでseedファイルを指定して実行したい時。 - Qiita

Ruby - 「rake」コマンドと「rails」コマンドの違い|teratail

2
0
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
2
0