Rails Tutorialで詰まったこと(第6章 ユーザーのモデルを作成する)

本記事の目的

  • 本格的なプログラム言語学習を独学するに辺り、自分が躓いた場所を逐一残していおくことで他の独学者の皆さんの役に立つことを狙って
  • 自身の忘備録として

第6章 ユーザーのモデルを作成する

問題. DBのトランザクション中にmigrationを行いデットロック1発生

  • 原因 : rails consoleのsandboxでDB実行中(右オレンジ枠部)にDBのmigration(左赤枠部)を実行したこと(下記、図1参照)
  • 解決策 : 速やかにsandboxを閉じrollback後にmigration実行

f:id:Aizack:20220302211459p:plain
図1. sandboxでDB起動中に db migrateコマンドを実行

【結論】
自分が今なにを対象に作業しているのかを各コンソールやIDEの画面を把握していくことで今回のような問題の発生は防げた気がする。
一方でrails console --sandboxの状態での状態変更がロールバックされていない時にmigrationするとデットロックが発生するという事を体感できたのは興味深かった。


  1. 複数のプログラムが実行された際に矛盾が発生したため、お互いを待つ状態になり処理が進まなくなること。今回はデータベースの変更途中にmigrationを実行したことが原因。