今、共同開発でサイトを作っています。私がPM的なポジションですが、私はフロントエンドもバックエンドも知識は大してありません。勉強してた時期は長いけど、バックエンドなんて特に自分のサービスしか作ったことないし、「なんか動いた」的なところが多し。
一応プルリクもらって、コードレビュー、マージする、、をしてたのですが、バックエンド部分に私も取り組まなくてはいけないなあ、、とやりだして、とりあえずgithubにあげていたのですが、確認を要するため、それを待っていたら先にプルリクをだしてきた人とコンフリクト。私は最初にやりますよ、と言っていた部分ではなかったので、彼のファイルを優先して、自分の作った部分は一旦壊して、練習のために少ないし書き直そう〜と思って新たにブランチを切ってやり直したら、、、エラーが出ました。
データベースのエラー
ああああ、止まってしまう、私が止めてしまう、、と焦りまくってお酒を飲んでいたにも関わらず、完全に酔いが覚めました。
私の勝手な考えだったのですが、ブランチそのものにテーブルを作って、そのブランチをマージしてない限り、テーブル自体も消えてると思い込んでいたのです。
そして新たにブランチを切り、deviseを入れ、
rails db:migrationしたら、、pending error.
はあ??
とよく読んだら、テーブルが重複してると。すでにそのテーブルあるよと。
そんな、ファイルは存在してないし、ないでしょ、別のブランチだし。ってmainブランチに切り替えてsqlで確認してみました。
$rails db
そして
sql>.tables
これで↑存在するテーブルが出てくるんですが、、、
ありました。しっかり作ったテーブルが出てきました。
で、記事にある通り
drop table テーブル名
にしたけど、>..
ってなるだけで、おーい、sql,反応して〜〜〜〜〜〜〜!←こんなことを考えてる時点でエンジニア失格ですね、、
で反応せず。はい。;←これが抜けてましたね。
drop table テーブル名;
無事、テーブルを削除することができました。
sqlを抜けるときは
sql>.quitすれば抜けれます。
そしてもう一度rails db:migrateすればOK
焦った。とっても焦った。gitもコンフリクト起こすのが怖いので、今は出来るだけ順番に細かくプルリクもらって、マージってしてます。でも自分の部分をチェックなかなかしてもらえないから、待ってたら溜まってきて、、、みたいな感じでコンフリクト怖いから作り直したらまためんどくさいことになるという。むしろコンフリクト起こした方が楽だったかもしれないと思いました。ただ、勉強にはなりましたが。。データベース系怖い。全然わからん。。
dbエラーでわちゃわちゃしてた。
— Yumiko@癌サバイバーのミニマリスト (@engineerman8) 2020年12月19日
数々の記事を実行したけどエラーがなおらず。
なんだそれ、みたいなやつでdrop tableして、なんとか。今日はさっさと寝るはずだったのに、、!
メモ的になってしまいましたが、qiitaにまとめて書きたい、、、。
ちなみに、今回は、私が作ったばっかりのテーブルだったので削除してもなんら問題ないですが、そうではない場合大問題なのでいきなりテーブル削除しちゃダメです。