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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

解決済

3回答

301閲覧

Ruby on Railsデータベースリセット

kenny_sayama

総合スコア1036

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2017/09/06 00:25

環境

  • Ruby 2.4系
  • Rails 5.1系

###前提・実現したいこと
Ruby on Railsでアプリケーションを作成しているのですが、とある拍子に間違ったコミットを取り込み、データベースのテーブルのカラムが不要なものが混じり、必要なカラムが削除されてしまいました。
その事態に気づいたのが、少々遅かったため、マイグレーションファイルはエラーが見つかった際に変更をしたのですが、rails db:migrateしても変更が適用されません。

###試したこと
試しにrails db:migrate:resetをして見たのですが、ダメでした

どなたか経験のある方ご教授よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

rails g migration ファイル名

で、マイグレーションファイルを作って、そこで該当のカラムを削除して、migrateし直してはいかがでしょうか。
本番であれば、基本的に不可逆ですので、上書いていくのが良いと思います。

投稿2017/09/07 00:42

Yuinyan

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

間違ったコミットを取り込み

Gitに残ってしまった以上、消すのが現実的でないので、「間違えたマイグレーションのの逆動作をするマイグレーション」を作成して、改めてマイグレーションをかけるほかないと思います。

投稿2017/09/06 00:47

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenny_sayama

2017/09/06 00:48

やはりその方法しかないですよね。。。
maisumakun

2017/09/06 00:50

ローカルで作成しているなどで、マイグレーションの直後に気づいたなどであれば、「rails db:rollback」で1つ戻せます。
kenny_sayama

2017/09/06 01:02

直後でないので、rollbackが効かず。。。
guest

0

ベストアンサー

データベースとマイグレーションファイルの内容が大きく食い違った時は、もうどうしようもないです。
DBを削除して作り直した後、正しいマイグレーションを実行するというのが確実でしょう。

  • マイグレーションファイルの内容を正しい状態に修正
  • rails db:drop
  • rails db:create
  • rails db:migrate

投稿2017/09/06 00:51

mingos

総合スコア4025

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenny_sayama

2017/09/06 01:01

本番ですでにデータがある状態なので、DBを削除することが出来ないのです。。。
mingos

2017/09/06 01:08

えーと、本番なのに誤ってマイグレーションをしてしまうという状況がちょっと想像しづらいですね。 まずは、ローカルの開発環境で確認してから本番環境で作業しますよね? でも、ローカルで試した時に気づかなかったという事もあるかな。 とはいえ、カラムが消えたのであれば本来あるべきデータが一部消えているわけですけども。 とりあえず、 ・不要なカラムがある ・必要なカラムがない という事なら、直接DBを操作してALTER TABLで、カラムの追加と削除を行うのが良いのではないでしょういか。 私ならそうします。
kenny_sayama

2017/09/07 00:55

テスト環境で色々試し、minogosさんの方法で解決いたしましたm(_ _)m ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問