PostgreSQLのデータ型を変更する
開発中のシステムで、あるvarchar型のフィールドの長さを変更したい、という要望があった。
マニュアルでALTER TABLE文を調べてみたが、それらしきコマンドは無い。
DROP & CREATEだとデータ消えちゃうし。
ネットで調べると、↓ココがヒット。
http://www.gac.jp/article/index.php?stats=question&category=13&id=11751&command=msg:なぜなにGAC 【PostgreSQL】データ型を変換したい
以下、自分なりのまとめ。
- ダンプファイルをとる
- pg_dump -U ユーザ名 DB名 ダンプファイル名
- ダンプファイルを編集
- viでダンプファイル内のCREATE TABLE文を修正する。
- 既存テーブルの削除
- 「DROP TABLE テーブル名」で対象のテーブルを削除する。
- ダンプファイルから戻す
- pgsqlで「\i ダンプファイル名」を実行する。
これでデータ型を変更できた。