データベースの構造変更は注意

随分以前から運用しているシステムでテーブルに項目を追加しなければいけない追加機能の要請があった。

取り敢えず、テーブルに必要な項目を追加して動作確認。

OKだったので、他の修正を含めて取説を書く為に動作確認中、修正箇所とは関係ないと思われる場所で何故かSQLの問い合わせが返ってこない箇所を発見した。

該当する箇所にエラートラップを仕掛けて、何の不具合が発生しているのか調べるとambiguousが出ている。

これはsqlの定義が曖昧だという意味だが、「あ!」と思った。

追加した項目と同じ名前の項目名を別のテーブルで使っていて、丁度joinで接続した問い合わせをしている箇所があったのだ。

だいたい構造を変更する場合は用心しないといけないのだが、うっかり適当な名前を付けた事で、違う場所へ影響が出てしまったのだ。

すぐにテーブルの項目名を変更して、必要な箇所を修正すると正常に稼働した。

僕はこの様な項目名の変更やタイプミスが無い様にデータベースのテーブル名は絶対ハードコーディングせずに配列で設定して、sqlも全て配列を参照して作成するようにしているので、こう言う事態でも修正箇所が少なく分かりやすく、これが幸いした様だ。

幸いリリースする前で良かったが、これだから製作から暫く期間が空いたシステムの修正は嫌いだ(-_-;)

カテゴリー: 未分類   パーマリンク

コメントは受け付けていません。