質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

解決済

【Rails】データベース(シークエルプロ)で作ったテーブル自体を削除する方法を教えていただきたいです

study_matome
study_matome

総合スコア33

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1回答

0評価

0クリップ

109閲覧

投稿2022/05/23 13:37

質問したいこと

現在画像投稿アプリを作成しておりまして、
お気に入り機能を実装しています。

初めての機能だったので練習しようと思い、
本体のアプリの複製でデータベースを作成したところ、
本体のアプリにデータベースが作られてしまいました。

間違えて作ったデータベース(シークエルプロ)のテーブル自体を
削除する方法がありましたら教えていただきたいです。

試したことやエラーメッセージ

①間違えて作成してしまった直後の本体アプリを確認

rails

Status Migration ID Migration Name -------------------------------------------------- up 20220518051644 Devise create users up 20220519121235 Create active storage tablesactive storage up 20220519122831 Create items up 20220521105855 Create comments up 20220523123107 ********** NO FILE ********** down 20220523124842 Create favorites

② NO FILEを削除するため以下を実行

touch db/migrate/20220523123107_hoge.rb

ダミーファイルを作成

db/migrate/20220523123107_hoge.rb

class Hoge < ActiveRecord::Migration[6.0] def change end end

rails

Status Migration ID Migration Name -------------------------------------------------- up 20220518051644 Devise create users up 20220519121235 Create active storage tablesactive storage up 20220519122831 Create items up 20220521105855 Create comments up 20220523123107 Hoge down 20220523124842 Create favorites

削除を実行

rm -rf db/migrate/20220523123107_hoge.rb

現状

NO FILEは消去することができました。

rails

up 20220518051644 Devise create users up 20220519121235 Create active storage tablesactive storage up 20220519122831 Create items up 20220521105855 Create comments 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することができない状態でした。

スクリーンショット 2022-05-23 22.34.07.png

質問①
このような場合、シークエルのデータベース自体を消去することで
「rails db:migrate」し、正常通りにデータベースを作成することができるのでしょうか?

質問②
もしそうでしたら、削除方法を教えていただくことは可能でしょうか?

質問③
そうでない場合は、モデルを削除し、別なモデル名で行う方法もありますでしょうか?
他の方法がありましたら教えていただけると嬉しいです。

長文になってしまい申し訳ありませんが、
教えていただけますと、とても助かります。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。