ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PostgreSQLで、改善してほいしところ

現象と原因

先日、あるシステムにデータを入れようと登録プログラムを使いましたが入りません。
原因を調べると、character(8)と定義されているとこのに、英数記号で構成された9文字の文字列を入れようとしているためでした。

対処

原因がわかったので、character(16)に定義を変更してしまえば対処はできますが、該当のカラムはビューに使われていて、変更しようとするとエラーになります。

ビューを消さない限り変更できないので、ビューを消しましたが、複数のビューに使われ、ビューを参照しているビューもあって、30近くあるビューのほとんどを消す羽目になりました。

テスト環境で、対象のビューを全て削除して、カラムの定義を変更して、ビューを作成し直すSQLを作成してテスト後、本番に対して実行して、無事本番環境を更新できました。

まとめ

SQL Serverではビューに定義を変更したいカラムが使われていても変更できた筈なので、PostgreSQLも対応して欲しいです。