わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

PostgreSQLの文字コード変更方法

先週金曜日のことを.
学生が,私の部屋のデータベースサーバへデータを移行したいということで,こちらは,ユーザを新規に作り,データベースを作り,メールで伝えました.
その後はメールで情報交換をしました.こちらもそのほうが好都合でthat's more convenient for me,顔を合わせることなく,授業準備などをして,メールが来たらその都度対応しました.
データベースの文字コードを変更してほしい,という連絡が来ました.
私も,一つのコマンドかSQL文で,変更する方法を知らなかったので,データベースを作り直すアプローチを指示*1しました.

  1. データベースへの接続をすべて切断します.
  2. サーバにリモートログインして,「pg_dump dbname > dbname.sql」を実行します.
  3. 「dropdb dbname」を実行します.
  4. 「createdb -O username -E UTF-8 dbname」を実行します.
  5. 「db_restore -d dbname < dbname.sql」を実行します.
  6. psql dbname username」を実行して,「\dt」などにより,テーブルなどが保存されているのを確認します.

上記のdbnameとusernameはもちろんそのままではなく,データベース名とユーザ名です.
たぶん鈍くさい方法です.スマートなやり方をご存知でしたら,どなたかご教示ください.

*1:教育的配慮,というよりは,大学院のゼミが迫っていたので,データベースを作る権限を与えた上で「放り投げた」ものです.