起票日:2020/8/16
エラー内容:Moodle更新後、初回アクセス時に以下のエラーが表示される。DBMSはPostgreSQLを使用。
あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存する必要があります。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。
原因:これまでのバージョンのMoodleではDBのエンコーディングが確認されていなかったため、デフォルトの設定であるSQL_ASCIIのままになっていた。
postgres=# \l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限 -----------+----------+------------------+-------------+-------------------+----------------------- moodle | postgres | SQL_ASCII | C | C |
対応:Moodle用データを管理するDBのデータをバックアップ、エンコーディングにUTF8を指定してDBを作成。UTF8に変換したバックアップを戻す。
バックアップを戻す際、pg_dumpで取得したバックアップにはDBのエンコーディングを設定するSQLが記述されているので、対象行を削除する必要がある。
SET client_encoding = 'SQL_ASCII';
コメント