蝸牛の歩み

蝸牛の如く,ゆっくりでも着実に前へ・・・

PostgreSQLのバージョンアップにあたって

8.1以降のPostgreSQLでは、デフォルトではテーブルにoidが含まれなくなる模様。oidが存在すること前提で書いてあったスクリプトで“column "oid" does not exist”というエラーが発生した。これは default_with_oids がデフォルトONからOFFになったため(http://www.fiberbit.net/user/kunyami/postgresql/parameter/previous/default_with_oids.html)。
対応としては、スクリプトを書き換えるのが一番だが、対症療法としては以下。

ALTER TABLE hogehoge SET WITH OIDS;

次回同じ作業をする場合は、(CREATE TABLEする前に、というかpostgresを起動する前に)postgresql.confの default_with_oids をONにしておけばよい。