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

Ryby on railsで NOFILEと出た時の対処法(MySQL)

Posted at

はじめに

railsで手動でデータを消してしまい、NO FILEが作られました。私はまだ初心者なので、さんざん検索したのですが、バージョンの違いなどで解決まで時間がかかったのでrails5.2.1 での解決方法を備忘録としてメモしておきます。(ついでに初投稿です!)
ミス等ありましたらご指摘ください。
参考: railsのrakeのmigrationファイルを削除しNO FILEとstatusに出た時の対処

本題

rails db:migrate:statusで確認

私の場合このように表示されました。これからさらにDBを追加していく時にNO FILEがあると邪魔だし、なんか嫌だし。。 消したい!

$ rails db:migrate:status

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200409041144  Create users
   up     20200409041159  Add devise to users
   up     20200409043157  Add username to users
   up     20200409043957  Create tweets
   up     20200409044148  Add text to tweets
   up     20200410022026  Add user to tweets
   up     20200410022800  Add userid to tweets
   up     20200415052544  ********** NO FILE **********  <=これ

ひとまずファイルを与える

ファイル名はどうせ消すので何でも良いのですが今回はdummyとします。

$ touch マイグレーションのID_dummy.rb
 私の場合だと
$ touch 20200415052544_dummy.rb

これをターミナルで実行すると、マイグレーションのID_dummy.rbのファイルができているはずです。

そしてそのファイルの中に下のコードをコピペ

class Dummy < ActiveRecord::Migration[5.2]
 def change
 end
end
ここでMigrationの隣にある[]内はバージョンを指定しているので必要に応じて変えてください。

rails5.2.1なら上のコードでOK
忘れず保存します。

もう一度rails db:migrate:statusで確認

$ rails db:migrate:status

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200409041144  Create users
   up     20200409041159  Add devise to users
   up     20200409043157  Add username to users
   up     20200409043957  Create tweets
   up     20200409044148  Add text to tweets
   up     20200410022026  Add user to tweets
   up     20200410022800  Add userid to tweets
   up     20200415052544  Dummy

NO FILEだったのがDummyに変わりました!
準備完了!

downさせる

$rails db:migrate:down VERSION=マイグレーションのID
 私の場合だと
$rails db:migrate:down VERSION=20200415052544

実行

== 20200415052544 Dummy: reverting ============================================
== 20200415052544 Dummy: reverted (0.0024s) ===================================

こんな感じに表示されましたか?もうファイルはdownの状態なので普通にDeleteすれば完了です。(ここはもちろん手動でOK)

結果

$ rails db:migrate:status

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20200409041144  Create users
   up     20200409041159  Add devise to users
   up     20200409043157  Add username to users
   up     20200409043957  Create tweets
   up     20200409044148  Add text to tweets
   up     20200410022026  Add user to tweets
   up     20200410022800  Add userid to tweets

NO FILEが消えました! 以上です。

余談ですが、初心者の学生さんでプログラミングの話題を共有出来る方を探しています。もし良ければ、
twitter @chocola35175554までDMください!

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