Moodle1.6?

Re: Moodle1.6?

- Hiroto Kagotani の投稿
返信数: 1
武本先生、

たまたま先ほど、utf8(データベース設定はlatin1)のサイトから、データベースの内部設定もutf8となるように、既存のデータベース全体を移行してみたところ、うまくいきましたので報告します。もちろんテスト用のサイトで行ってみてください。

mysqlが4.1.16以上であることを確認します。
utf8のデータベースを作成します。ユーザ認証の設定も、当然正しく行ってください。既存のデータベースについてもダンプできるように十分な権限を与えておきます。
  mysql -u root -p
  mysql> CREATE DATABASE yourutf8moodledb DEFAULT CHARACTER SET utf8;
  mysql> GRANT ALL ON yourutf8moodledb.* TO yourname@yourhost;
  mysql> GRANT ALL ON youroldmoodledb.* TO yourname@yourhost;
既存のデータベースをmysqldumpでダンプしますが、latin1を指定することにより、異常な変換がされることを防ぎます。さらに、テーブルのCHARSET指定をutf8に変更します(変なところを変更していないかgrepなどで確認しておいた方がいいと思います)。そして、得られたダンプを、そのまま新しいデータベースに復元します。(これらを全部パイプでつなげばファイルを作らなくてもいけると思います)
  mysqldump -u yourname -p youroldmoodledb --default-character-set=latin1 > /your/dumpfile1
  sed 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/' /your/dumpfile1 > /your/dumpfile2
  mysql -u yourname -p yourutf8moodledb < /your/dumpfile2
新しい1.6のサイトを構築し、config-dist.phpをconfig.phpにコピーし、各変数を正しく設定します。このとき次の設定も重要です。
  $CFG->dbname = 'yourutf8moodledb';
$CFG->unicodedb = true;
以上でうまくいくのではないかと思います。

籠谷
Hiroto Kagotani への返信

Re: Moodle1.6?

- Timothy Takemoto の投稿

籠谷先生

どうもありがとうございます。また、最初から成り直すことになると思っていました。

大変貴重な情報を詳しくご説明いただいてありがとうございました。

MYSQLをアップグレードいただければ、お教えいただいた方法を試してみます。

武本