はじめに
Rialsのマイグレーション関連のコマンドを備忘録としてまとめました。
migrationとは?
【Railsガイド参照】
マイグレーションは、データベーススキーマの継続的な変更(英語)を、統一的かつ簡単に行なうための便利な手法です。マイグレーションではRubyのDSLが使われているので、生のSQLを作成する必要がなく、スキーマおよびスキーマ変更がデータベースに依存しなくなります。個別のマイグレーションは、データベースの新しい「バージョン」とみなせます。スキーマは空の状態から始まり、マイグレーションによる変更が加わるたびにテーブル、カラム、エントリが追加または削除されます。Active Recordはマイグレーションの時系列に沿ってスキーマを更新する方法を知っているので、履歴のどの時点からでも最新バージョンのスキーマに更新できます。Active Recordはdb/schema.rbファイルを更新し、データベースの最新の構造と一致するようにします。
マイグレーション機能があることにより、SQLを書くことなくRubyでデータベース内にテーブルを作成することができます。Rails内のActiveRecordという機能がRubyをSQLに自動翻訳することができるため、SQLを書く必要がなくなります。
コマンド
migrate
$ rails db:migrate
migrationファイルを元に、データベースに変更を加える。
status
$ rails db:migrate:status
migrationファイルの適用状態を確認する。
up・・・マイグレーションファイルを実行済み。
down・・・マイグレーションファイルがまだ実行されていない。
up
$ rails db:migrate:up VERSION=20220101080718
指定したマイグレーションファイルのみ実行する。
down
$ rails db:migrate:down VERSION=20220101080718
指定したマイグレーションファイルのみ外す。
rollback
$ rails db:migrate:rollback
データベースの構造を前の状態に戻す。
reset
$ rails db:migrate:reset
データベースの初期化し、何も入っていない状態にする。
参考URL
Active Record マイグレーション
【Rails入門】データベースを設定するrails db:migrateを説明!
Rails初心者がつまずきやすい「マイグレーション」