質問したいこと
現在画像投稿アプリを作成しておりまして、
お気に入り機能を実装しています。
初めての機能だったので練習しようと思い、
本体のアプリの複製でデータベースを作成したところ、
本体のアプリにデータベースが作られてしまいました。
間違えて作ったデータベース(シークエルプロ)のテーブル自体を
削除する方法がありましたら教えていただきたいです。
試したことやエラーメッセージ
①間違えて作成してしまった直後の本体アプリを確認
rails
1 2 Status Migration ID Migration Name 3-------------------------------------------------- 4 up 20220518051644 Devise create users 5 up 20220519121235 Create active storage tablesactive storage 6 up 20220519122831 Create items 7 up 20220521105855 Create comments 8 up 20220523123107 ********** NO FILE ********** 9 down 20220523124842 Create favorites 10
② NO FILEを削除するため以下を実行
touch db/migrate/20220523123107_hoge.rb
ダミーファイルを作成
db/migrate/20220523123107_hoge.rb
1class Hoge < ActiveRecord::Migration[6.0] 2 def change 3 end 4end
rails
1 Status Migration ID Migration Name 2-------------------------------------------------- 3 up 20220518051644 Devise create users 4 up 20220519121235 Create active storage tablesactive storage 5 up 20220519122831 Create items 6 up 20220521105855 Create comments 7 up 20220523123107 Hoge 8 down 20220523124842 Create favorites
削除を実行
rm -rf db/migrate/20220523123107_hoge.rb
現状
NO FILEは消去することができました。
rails
1 up 20220518051644 Devise create users 2 up 20220519121235 Create active storage tablesactive storage 3 up 20220519122831 Create items 4 up 20220521105855 Create comments 5 down 20220523124842 Create favorites
しかしこの状態でマイグレーションファイルを「rails db:migrate」すると
以下のようなエラーが出てきてしまいました。
NO FILEは消去することができましたが、テーブルは作成済との内容でした。
rails aborted! StandardError: An error has occurred, all later migrations canceled: Index name 'index_favorites_on_user_id' on table 'favorites' already exists /Users/admin/projects/little-artist/db/migrate/20220523124842_create_favorites.rb:3:in `change' /Users/admin/projects/little-artist/bin/rails:9:in `<top (required)>' /Users/admin/projects/little-artist/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Caused by: ArgumentError: Index name 'index_favorites_on_user_id' on table 'favorites' already exists /Users/admin/projects/little-artist/db/migrate/20220523124842_create_favorites.rb:3:in `change' /Users/admin/projects/little-artist/bin/rails:9:in `<top (required)>' /Users/admin/projects/little-artist/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:migrate (See full trace by running task with --trace)
複製の方で作成したデータベースがシークエルPROに残ってしまい、
upすることができない状態でした。
質問①
このような場合、シークエルのデータベース自体を消去することで
「rails db:migrate」し、正常通りにデータベースを作成することができるのでしょうか?
質問②
もしそうでしたら、削除方法を教えていただくことは可能でしょうか?
質問③
そうでない場合は、モデルを削除し、別なモデル名で行う方法もありますでしょうか?
他の方法がありましたら教えていただけると嬉しいです。
長文になってしまい申し訳ありませんが、
教えていただけますと、とても助かります。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。