ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
マイグレーション実行コマンドとは
Ruby on Rails では、テーブルの作成・カラム追加・索引の変更などスキーマ変更を Ruby のコード(マイグレーションファイル)として管理します。これらのファイルを実際に DB に反映するコマンドが rails db:migrate です。Rails 4 以前は rake db:migrate でしたが、現在は rails コマンド経由が推奨です(どちらも内部的には同じ処理を呼び出します)。
基本構文
rails db:migrate [VERSION=タイムスタンプ] [RAILS_ENV=環境名]
シンプルな使用例
$ rails db:migrate
== 20180427173502 CreateTests: migrating ======================================
-- create_table(:tests)
-> 0.0123s
== 20180427173502 CreateTests: migrated (0.0150s) =============================未適用のマイグレーションファイルが上から順に実行され、schema_migrations テーブルに該当ファイルのタイムスタンプが記録されます。記録済みのものは再実行されません。
よく使うサブコマンド
| コマンド | 役割 |
|---|---|
rails db:migrate | 未適用のマイグレーションを順に実行 |
rails db:rollback | 直前のマイグレーションを 1 つ戻す |
rails db:rollback STEP=3 | 3 つ分戻す |
rails db:migrate:redo | 直前のマイグレーションを 1 回戻して再実行 |
rails db:migrate:up VERSION=... | 指定したマイグレーションだけ up |
rails db:migrate:down VERSION=... | 指定したマイグレーションだけ down |
rails db:migrate:status | 各マイグレーションの up/down 状態を一覧 |
rails db:schema:load | schema.rb から一気にテーブル作成(開発初期化向け) |
rails db:reset | drop → create → schema:load → seed |
状態確認の例
$ rails db:migrate:status
database: app_development
Status Migration ID Migration Name
--------------------------------------------------
up 20180427173502 Create tests
up 20180510120010 Add email to users
down 20180523080055 Add index to articlesdown になっているものが未適用です。rails db:migrate で残りが一気に適用されます。
ロールバック例
# 直前を 1 つ戻す
$ rails db:rollback
# 3 つ戻す
$ rails db:rollback STEP=3
# 特定バージョンを戻す
$ rails db:migrate:down VERSION=20180523080055
環境ごとの実行
環境を切り替えるには RAILS_ENV を指定します。本番ではこの指定を忘れると開発 DB を触ってしまう事故が起きるので注意。
# 開発(デフォルト)
$ rails db:migrate
# テスト
$ RAILS_ENV=test rails db:migrate
# 本番
$ RAILS_ENV=production rails db:migrate
本番運用での注意点
- 必ずバックアップをしてから流す。テーブル削除や列削除を含むマイグレーションは取り返しがつかない
- 大規模テーブルへの索引追加・カラム追加は長時間ロックする可能性がある。
algorithm: :concurrently(PostgreSQL)や、メンテナンスウィンドウを確保 - マイグレーションはデプロイの前か後かを明確に決めておく(互換性のないスキーマ変更は段階的に)
- 失敗時に部分適用にならないよう、複雑な処理は
reversibleブロックやsafety_assuredを活用 - CI で
db:migrateとdb:rollbackの両方を確認しておく
schema:load との使い分け
| シーン | 推奨 |
|---|---|
| 本番運用・既存 DB への差分反映 | db:migrate |
| 開発環境を一から作り直す | db:schema:load(高速) |
| テスト DB の初期化 | db:schema:load |
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- 新規プロジェクトの作成
- サーバーの起動
- マイグレーションファイルの作成
- マイグレーションの実行(migrate)
- モデルの作成
- 全ルートを確認
- Laravelのバージョンの確認方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?