Yukimarupie / puffshare

puffshare
0 stars 1 forks source link

カラムが削除できない #4

Closed Yukimarupie closed 3 years ago

Yukimarupie commented 3 years ago

タイポで作ってしまったdiscriptionカラムと、自動生成されることを失念しミスって作成していたcreated_dateを削除したい

スクリーンショット 2021-04-27 12 46 57

が、以下コマンドでmigrationファイルを作成し直し、

% docker-compose exec web bundle exec rails g migration Remove2clumnOfLetters discription:text create_date:datetime
Running via Spring preloader in process 150
      invoke  active_record
      create    db/migrate/20210427034306_remove2clumn_of_letters.rb
スクリーンショット 2021-04-27 12 48 53

db:migrateしたが、

 % docker-compose exec web bundle exec rails db:migrate                                                        
 == 20210427034306 Remove2clumnOfLetters: migrating ============================
== 20210427034306 Remove2clumnOfLetters: migrated (0.0000s) ===================

カラムが削除されません。

スクリーンショット 2021-04-27 12 49 26
Yukimarupie commented 3 years ago

Mysqlに接続してshema_migrationを見る....のは面倒なので、一度ブランチを切って、 仕切り直します。

Yukimarupie commented 3 years ago

-dじゃ消えないので強制削除を実行

% git branch -d forDropLetterModel
error: The branch 'forDropLetterModel' is not fully merged.
If you are sure you want to delete it, run 'git branch -D forDropLetterModel'.

% git branch -D forDropLetterModel
Deleted branch forDropLetterModel (was 9941935). 
Yukimarupie commented 3 years ago

マイグレーションファイルから作成し直し。(renameじゃなくてeditにすればよかった。)

% docker-compose exec web bundle exec rails g migration rename_discription_column_to_Letters               
Running via Spring preloader in process 202
      invoke  active_record
      create    db/migrate/20210427040147_rename_discription_column_to_letters.rb

ファイルを編集

スクリーンショット 2021-04-27 13 16 13

db:migrate

% docker-compose exec web bundle exec rails db:migrate                                      
== 20210427040147 RenameDiscriptionColumnToLetters: migrating =================
-- rename_column(:letters, :discription, :description)
   -> 0.0485s
-- remove_column(:letters, :create_date, :datetime)
   -> 0.0648s
== 20210427040147 RenameDiscriptionColumnToLetters: migrated (0.1137s) ========

今回はうまくいったと思ったのですが、やはりshemaファイルは変更されていません。

Yukimarupie commented 3 years ago

ステータスを確認

% docker-compose exec web bundle exec rails db:migrate:status                               

database: app_development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20210411113000  Create users
   up     20210425025001  Create letters
   up     20210427034306  ********** NO FILE **********
   up     20210427040147  Rename discription column to letters

きちんとupになっています。

Yukimarupie commented 3 years ago

Mysqlに接続してshema_migrationを見る....のは面倒なので、一度ブランチを切って、 仕切り直します。

https://qiita.com/beanbeenzou/items/e8886071ab1e1cf7a9c0

ここで少し追記ですが、上記QIita記事の様にID指定でdownさせればよかったかもです。↑

rails db:migrate:down VERSION=20200627083356
Yukimarupie commented 3 years ago

とりあえずmysqlに繋いで、descでレターテーブルを確認。

スクリーンショット 2021-04-27 13 26 41

うーーきちんとdescriptionになってるし、create_dateは削除されている.. またかよ〜 この実際のDBとshema.rbに記述されるのの差分に悩まされるのは二度目ですが、 先日詰まった際はdb:migrateの時点でエラーが出ていたのでまだわかるのですが、今回はエラーも出ていません。。 なぜなの。。やめてくれ。。

Yukimarupie commented 3 years ago

SELECT * FROM schema_migrations;で実行済のmigrationファイルの番号を確認します。

スクリーンショット 2021-04-27 13 33 31

あるよーーーー😢 なんでーーーなんであるのに反映されないの....

Yukimarupie commented 3 years ago

前提を記述しておきます。現在のforDeleteLettersModelブランチの状態↓

https://github.com/Yukimarupie/puffshare/tree/forDeleteLettersModel

このissueコメント移行に書いた作業は全てforDeleteLettersModelブランチにて行った作業です。 MySQL接続含め。

スクリーンショット 2021-04-27 13 39 16
Yukimarupie commented 3 years ago

メンターさんに相談しようと思って、リモートにpushしたのですが、 リモートのshema.rbを見たところ、きちんと反映されていて?!と確認したところ、 ローカルもshema.rbを開き直したらきちんと変更が反映されていました。笑😭 こういうことあるんですね。。よかったーー

https://github.com/Yukimarupie/puffshare/blob/forDeleteLettersModel/db/schema.rb