2006/06/10

改變現存的PostgreSQL Database編碼

當我們create一個database也工作一段時間後
忽然發現我們想要改變編碼方式,例如從Big5轉成UTF-8
那該怎麼做呢?新版的PostgreSQL有一個解法.

  • 備份要轉換的database : pg_dump -E encoding -U user_name -f out_file -F c databas_name
  • 刪掉這個database : dropdb -U user_name database_name
  • 重新建立正確編碼的database : createdb -E encoding -U user_name -O owner database_name
  • 將之前dump出來的資料restore回去 : pg_restore -U user_name -d database_name -F c input_file
  • 完成
  • 紅字要取代成你的設定

如果你的PostgreSQL版本小於8.1, 那我只會先dump到8.1以上的機器去處理;
你如果有更好的方法也跟我說一下吧

ps.修改於09/17/2007

沒有留言 :