rails db:rollbackの手順
マイグレーションを差し戻して、テーブルの内容を修正する。
必要な手順は以下の3ステップ
ステップ1
ロールバック
ステップ2
migrationファイルの修正
ステップ3
再度migrationを実行
ステップ1
rails db:rollbackコマンド
ターミナル
% rails db:rollback
rails db:rollback
カラム名を誤ってしまった場合などに、モデルに紐づくテーブルを作り直したいときに用いられるターミナルコマンド
例: nameをnemeにしてしまった等
「差し戻す」
と表現される
実行すると以下のような表示が出て差し戻される。
ターミナル
== 20200315054113 CreatePosts: reverting ======================================
-- drop_table(:posts)
-> 0.1939s
== 20200315054113 CreatePosts: reverted (0.2332s) =============================
rails db:migrate:statusコマンドとは?
補足情報として
rails db:migrate:status
というコマンドで状態を確認出来る。
ターミナル
% rails db:migrate:status
- マイグレーションファイルの状況
- up = 実行済み
- down = 適応されていない
ターミナル
database: first_app_development
Status Migration ID Migration Name
--------------------------------------------------
up 20190820071210 Create posts
downの表記がされていれば差し戻されている
ターミナル
database: first_app_development
Status Migration ID Migration Name
--------------------------------------------------
down 20190820071210 Create posts
ステップ2
migrationファイルの修正
db/migrate/20XXXXXXXXXXXX_create_変更前.rb
class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.text :memo
t.timestamps
end
end
end
t.text :memo
をt.text :content
へ変更
db/migrate/20XXXXXXXXXXXX_create_変更後.rb
class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.text :content
t.timestamps
end
end
end
カラム名と型とは?
補足情報として、カラム名と型とは何のことなのか解説
カラム名と型
t.text :memo
t.に続くのがカラムの型
その右側にシンボルで記載されるものがカラム名
ステップ3
再度migrationを実行
修正したマイグレーションを実行
します。
ターミナル
% rails db:migrate