J'ai fait une erreur dans le fichier de migration, je l'ai supprimé manuellement à la hâte, puis les rails db: migrate ont généré une erreur. À ce moment-là, NO FILE est sorti.
① Vérifiez le fichier de migration Vérifiez l'état actuel et vérifiez l'ID du fichier de migration avec $ rails db: migration: status.
$ 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
Confirmez que l'ID qui est AUCUN FICHIER est 20200528232616
② Créez un fichier factice La partie hoge est correcte car le fichier sera supprimé plus tard.
touch db/migrate/20200528232616_hoge.rb
20200528232616_hoge.rb
class Hoge < ActiveRecord::Migrattion[5.3] #5.Associez la partie 3 à la version des rails
def change
end
end
③ Supprimer le fichier de migration
Vérifiez la situation actuelle
$ 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
À l'heure actuelle, le nom de la migration est correctement attaché comme ceci. À partir de là, modifiez le fichier de migration de haut en bas.
$ 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
Après avoir confirmé qu'il est à l'état inactif, supprimez-le.
$ rm db/migrate/db/migrate/20200528232616_hoge.rb
Quand je le vérifie à nouveau,
$ 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
Il aurait dû disparaître correctement! !!
Tout d'abord, même si vous faites une erreur dans le fichier de migration, il est important de ne pas le supprimer précipitamment à l'état haut.
Recommended Posts