Closed Yukimarupie closed 3 years ago
Mysqlに接続してshema_migrationを見る....のは面倒なので、一度ブランチを切って、 仕切り直します。
-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).
マイグレーションファイルから作成し直し。(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
ファイルを編集
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ファイルは変更されていません。
ステータスを確認
% 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になっています。
Mysqlに接続してshema_migrationを見る....のは面倒なので、一度ブランチを切って、 仕切り直します。
https://qiita.com/beanbeenzou/items/e8886071ab1e1cf7a9c0
ここで少し追記ですが、上記QIita記事の様にID指定でdownさせればよかったかもです。↑
rails db:migrate:down VERSION=20200627083356
とりあえずmysqlに繋いで、descでレターテーブルを確認。
うーーきちんとdescriptionになってるし、create_dateは削除されている.. またかよ〜 この実際のDBとshema.rbに記述されるのの差分に悩まされるのは二度目ですが、 先日詰まった際はdb:migrateの時点でエラーが出ていたのでまだわかるのですが、今回はエラーも出ていません。。 なぜなの。。やめてくれ。。
SELECT * FROM schema_migrations;で実行済のmigrationファイルの番号を確認します。
あるよーーーー😢 なんでーーーなんであるのに反映されないの....
前提を記述しておきます。現在のforDeleteLettersModelブランチの状態↓
https://github.com/Yukimarupie/puffshare/tree/forDeleteLettersModel
このissueコメント移行に書いた作業は全てforDeleteLettersModelブランチにて行った作業です。 MySQL接続含め。
メンターさんに相談しようと思って、リモートにpushしたのですが、 リモートのshema.rbを見たところ、きちんと反映されていて?!と確認したところ、 ローカルもshema.rbを開き直したらきちんと変更が反映されていました。笑😭 こういうことあるんですね。。よかったーー
https://github.com/Yukimarupie/puffshare/blob/forDeleteLettersModel/db/schema.rb
タイポで作ってしまったdiscriptionカラムと、自動生成されることを失念しミスって作成していたcreated_dateを削除したい
が、以下コマンドでmigrationファイルを作成し直し、
db:migrateしたが、
カラムが削除されません。