2007-11-05

pg_dump は custom format がよいのか?

pg_dump dbname > file

で plain text に吐いておいた dump ファイルを、バージョンアップした DB で

psql dbname < file

しても、どうしても一部 restore できないものが残った1。これを

pg_dump -Fc dbname > file

で custom format で dump し、

pg_restore -Fc -d dbname file

で restore したらうまくいった。単に pg_restore が psql よりうまく restore してくれるのかもと思ったけど、pg_restore は plain text の dump ファイルを食べてくれないので検証のしようがない。

ちなみに、中でエンコーディングの狂っているデータがあるのかと思ってみたら iconv は確かに不正なシーケンスを見つけてくれたが、それを除去しても結果は同じだった。

さらにちなみに、作成した database に psql で接続して psql 上で

\lo_import filename

……はしなかった。やってみろて? だってこれ使いにくいもんなぁ…。schema だけ restore してやればいいじゃんて? えー。

  1. ほとんどはうまくいった。当たり前だけど permission とかの理由じゃないよ。 

PostgreSQL 8.1 以降、デフォルトDB は postgres

リリース8.1

  • initdbがpostgresという新しい標準データベースを作成するようになりました。このためユーティリティが標準データベースを検索する時にtemplate1ではなくpostgresを使用するように変更されました。(Dave)

マジすか。

思わず消しちまった。「あ、やべなんか変なデータベース作っちまった」と思ったよ。

消しちゃうとなんか普通の作業が結構できなくなります。

$ psql -U postgres template1
# create database -T template0 postgres;

とかしておくとよいと思う気がします。てかそうした。たぶん大丈夫。

au SPF 続報

なんか

Received-SPF: None

でも通ってる。そうか。docomo みたいに pass のみとかいう豪気な設定にはできんわけだ。ま、そりゃそうだよね。

じゃあやっぱホワイトリスト方式で締め出さないといかんな。

半年後に SPF が普及してたりするかもわからんけどね。

cf.

About

例によって個人のなんちゃらです