1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者】NO FILEの削除方法

Last updated at Posted at 2020-07-19

マイグレーションファイルを間違えて作り、慌てて手動で削除してしまいその後rails db:migrateするとエラーが出てしまいました。そのときに出てきたのがNO FILEです。

###削除方法
①マイグレーションファイルの確認
$ rails db:migration:statusで現状の確認とマイグレーションファイルのIDを調べる。

$ rails db:migration:status

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200518132414  Devise create users
   up     20200521083405  Add name to users
   up     20200525013751  Create posts
   up     20200527010431  Add picture to posts
   up     20200528232616  ********** NO FILE **********
   up     20200531083300  Create comments

NO FILEとなっているIDは20200528232616と確認

②ダミーのファイル作成
あとでファイルは消してしまうのでhogeの部分はなんでも大丈夫です。

touch db/migrate/20200528232616_hoge.rb
20200528232616_hoge.rb
 class Hoge < ActiveRecord::Migrattion[5.3] #5.3の部分はrailsのバージョンに合わせてください
   def change
   end
 end

③マイグレーションファイルを削除

現状の確認

$ rails db:migrate:status

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200518132414  Devise create users
   up     20200521083405  Add name to users
   up     20200525013751  Create posts
   up     20200527010431  Add picture to posts
   up     20200528232616  Hoge 
   up     20200531083300  Create comments

現状はこのようにMigration Nameがちゃんとついている状態になっています。
ここからマイグレーションファイルをupからdownの状態にします。

$ rails db:migration:down VERSION=2020052823261
$ rails db:migrate:status

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200518132414  Devise create users
   up     20200521083405  Add name to users
   up     20200525013751  Create posts
   up     20200527010431  Add picture to posts
  down    20200528232616  Hoge 
   up     20200531083300  Create comments

downの状態になったことを確認したあと、削除します。

$ rm db/migrate/db/migrate/20200528232616_hoge.rb

再度確認してみると、

$ rails db:migrate:status

Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200518132414  Devise create users
   up     20200521083405  Add name to users
   up     20200525013751  Create posts
   up     20200527010431  Add picture to posts
   up     20200531083300  Create comments

ちゃんと消えているはずです!!

###まとめ
まずはマイグレーションファイルを間違えて作ってしまっても、慌ててupの状態で削除をしないことが大切です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?