PostgreSQL カラムサイズが増やせない

ずっと昔に開発したコンテンツ配信のシステム。お客様から、大きなテキストが入力できないと連絡があった。

調べてみると、DB上のテーブル項目の文字サイズが小さい。そこでカラムサイズを増やすことに。

alter table ir_calendar alter text_col type character(256);

としたところ、エラーになる。

なんと、動いているPostgreSQLのバージョンが、7.4であった。このSQLは8.0でないと動かない。

そこで、次のように新しいカラムを追加して、そのカラムをアップデートしてから、今までのカラムを削除して、元に戻すといった面倒なことを行いました。(こちらを参考にしたサイトがわからなくなった)

ALTER TABLE ir_calendar ADD COLUMN new_text_col  character(256);
UPDATE ir_calendar SET new_text_col  = CAST(text_col AS character(256));
ALTER TABLE ir_calendar DROP COLUMN text_col ;
ALTER TABLE ir_calendar RENAME COLUMN new_text_col  TO text_col ;

以上で無事に大きなテキストが入力できるようになりした。

結局の所、最初の仕様の見積りミスですね。反省。