Moodle2.1にアップグレードできません

Re: Moodle2.1にアップグレードできません

- Hiroyuki H の投稿
返信数: 9

DB側の問題なのかそれ以外の問題なのかを切り分けるために、MySQLのクエリログを記録するよう設定してアップグレードを試してみては如何でしょうか。

topを叩かれているということはLinux系のサーバかと思いますので、MySQLの 設定ファイル( /etc/my.cnf など) にある [mysqld] セクションに

log=query.log

を追加してmysqldを再起動すると、mysqldがクエリを受け取った時点でログに書きこまれます。

「~から~へアップグレードしています ...」の表示の裏でどんな処理が走っているのか定かでないのですが、おそらく実際のアップグレードの処理が走る前に何らかの原因で止まっているのではないかと思います。

moodleディレクトリ、moodle_dataディレクトリ、データベースは、それぞれ一旦作業前の状態に戻して再度アップグレードを試みられても同じ箇所で止まってしまう状況でしょうか。

あるいは、アップグレードに失敗したDBに対して再度アップグレードを試みられている状況でしょうか。

評点平均: お役立ち度: ★★★★★★★ (2)
Hiroyuki H への返信

Re: Moodle2.1にアップグレードできません

- Shin'ichi Tsumori の投稿

フォローを有難うございます.クエリをログに吐くという方法を思いつかなかったので,大変参考になりました.

早速やってみました.結果のログの一部(tail部分)を添付します.敢えてtail部分のみにしているのは,実はこの後は添付の内容が延々と繰り返されるだけだからです(無限ループ?).

ログは以降ほぼ正確に5分刻みで更新される(添付の部分がIDを増やしながら追加されていく)状況です.

一応mysqldとのやり取りはできているように思いますが,このログから何か分かるでしょうか.

> moodleディレクトリ、moodle_dataディレクトリ、データベースは、それぞれ一旦作業前の状態に戻して再度アップグレードを試みられても同じ箇所で止まってしまう状況でしょうか。

> あるいは、アップグレードに失敗したDBに対して再度アップグレードを試みられている状況でしょうか。

アップグレードを試みる際は,必ず作業前の状態に戻しています.つまり,moodleディレクトリを一旦削除して,ダウンロードしたファイルから再度展開し,現在使用しているconfig.phpをコピーした後に,admin/index.phpを起動しています.

moodle_dataとmysql DBについてですが,アップグレードに失敗した後,moodleディレクトリのバックアップを一旦moodleディレクトリに戻して再接続を確認しています.つまり,失敗後は正常動作する状況に一旦復帰しています.

Shin'ichi Tsumori への返信

Re: Moodle2.1にアップグレードできません

- Hiroyuki H の投稿

まず、5分刻みで更新されるクエリログは、サーバでcronが走っているのではないかと思うのですがいかがでしょうか。

当方の環境(1.9系から2.1まで上げた時のログしか手元に今ありません)とは若干異なっているので推測ですが、ログの内容はアップグレードが実行されたような内容にはなっていないですね。画面遷移上はServer checks (php_extensionがインストールされているかなどの確認画面)から、Plugins check(プラグインのインストール状況の確認)を経た次の画面ぐらいで止まっている、という感じなのでしょうか。

失敗後は正常動作する環境に戻されている、ということなので大丈夫だと思いますが、moodleディレクトリのバックアップを戻すだけではデータベースは切り戻し(アップグレード前の状態に戻す)できません。 (私はよく作業前にmysqldumpで当該moodleのDBをダンプしておいて、バージョンアップなどが上手くいかなかった場合は一端DBをdropして再度create databaseでDBを再作成後、ダンプファイルを空のDBに流しこんで作業前の状態に戻します。)

一旦作業前の環境に戻した状態で

mysql> select * from mysql.user where User='moodleuser'\G

で念の為にmoodleuserの権限を確認してみたあとで

mysql> select * from moodle.mdl_upgrade_log;

で出力されたログの"plugin / core" のinfoには、"Upgrade savepoint reached"がアップグレードを試みられているMoodleの"targetversion"で記録されてはいないはずです。

作業前にここまで確認できれば、実際にアップグレードを実行すると、最初の方の段階でこのログが記録されます。ただ恐らく添付頂いたquery.logはそこまで至っていないように思われます。

新規インストールもお試しになられてそちらは上手くいったとのことなので、仮にMoodle側に問題があるならば、例えばその新規インストール時のconfig.phpとアップグレードに使われているconfig.phpを比較してみると何かわかるかもしれません。

評点平均: お役立ち度: ★★★★★★★ (2)
Hiroyuki H への返信

Re: Moodle2.1にアップグレードできません

- Shin'ichi Tsumori の投稿

フォロー有難うございます.お蔭様で,アップグレードできない原因が多分分かりました(インストールとは別の次元の問題でした).

>まず、5分刻みで更新されるクエリログは、サーバでcronが走っているのではないかと思うのですがいかがでしょうか。

…でした(^^;.

> mysql> select * from moodle.mdl_upgrade_log;

>で出力されたログの"plugin / core" のinfoには、"Upgrade savepoint reached"がアップグレードを試みられているMoodleの"targetversion"で記録されてはいないはずです。

はい,このログのメッセージで原因が分かりました.

多分インストールとは別の問題になりますが,以前,2.0にアップグレードした後に,テーマの作り方を学習しようと思い,moodle/themeディレクトリで,

# copy -r formal_white formal_white_kjc

として,formal_white_kjcをいじってみて,テーマセレクタにおいてテーマキャッシュをクリアしたところ,なぜか全てのテーマが表示されなくなってしまいました.

慌てて,formal_white_kjcを削除して,テーマキャッシュをクリアしたところ,テーマは元のように表示されるようになったのですが,このformal_white_kjcの情報がMySQLに残っていたようで,それがアップグレードの障害になっていたようです.上述のログも,

| 809 |    2 | core                       | 2011033003.06 | 2011033003.06 | Exception: plugin_defective_exception | 申し訳ございません、プラグイン「 theme_formal_white_kjc 」に問題があるため、継続できません。

が表示されて止まりますので,ここに問題があったのだと思います.

ついでながらお尋ねできればと思いますが,この問題を解消するための方法はあるでしょうか.Moodle上でそれらしきものを探してみたのですが,見つかりません.

ご存知でしたら,ご教示頂ければ嬉しいです.

Shin'ichi Tsumori への返信

Re: Moodle2.1にアップグレードできません

- Hiroyuki H の投稿

原因に近づけてよかったです。

ご質問のtheme_formal_white_kjcの情報は、おそらく

mysql> select * from moodle2.mdl_config_plugins where plugin LIKE '%theme_formal_white_kjc%';

で結果が返ってくると思いますので、該当するレコードを消しておけば次の処理に行くのではないかと思います。

 

Hiroyuki H への返信

Re: Moodle2.1にアップグレードできません

- Shin'ichi Tsumori の投稿

> ご質問のtheme_formal_white_kjcの情報は、おそらく

> mysql> select * from moodle2.mdl_config_plugins where plugin LIKE '%theme_formal_white_kjc%';

> で結果が返ってくると思いますので、該当するレコードを消しておけば次の処理に行くのではないかと思います。

やってみました.

"moodle2.mdl_config_plugins"は私の環境では"moodle.mdl_config_plugins"ですが,残念ながらemptyでした.

念のため,MySQLadminを使ってテーブルの中を覗いてみましたが,確かにtheme_formal_white_kjcを含む文字列はありませんでした (そもそもpluginフィールドに"theme"で始まる値がない).

他のテーブルにあるんだと思います.探してみます.

どうも有難うございます.

Shin'ichi Tsumori への返信

Re: Moodle2.1にアップグレードできません

- Shin'ichi Tsumori の投稿

自己フォローです.

DBには当該のレコードが見当たらなかったのですが,テーマセレクタを使って他のテーマに設定したら障害が治りました.

色々ご教示頂き有難うございました.お騒がせして申し訳ありません.

Shin'ichi Tsumori への返信

Re: Moodle2.1にアップグレードできません

- Hiroyuki H の投稿

無事解決してよかったです。しかしどこにテーマの情報を持っていたんでしょうね?

2系はまだまだ事例が少ないので、今後もぜひ何かありましたらフォーラムへ情報をお寄せください。お待ちしております笑顔

 

Hiroyuki H への返信

Re: Moodle2.1にアップグレードできません

- Shin'ichi Tsumori の投稿

色々ご指導頂き,有難うございました.

> 無事解決してよかったです。しかしどこにテーマの情報を持っていたんでしょうね?

結局分からずじまいです.それらしい名称のテーブルは当たってみたのですが….

テーマキャッシュに変な情報が残ってるのかとそのクリアばかりを考えてたのですが,テーマを他のものに変えてみるという簡単なことに気づきませんでした.

バージョン2.Xは,1.Xのように,themeディレクトリの下で既存のテーマのコピーを作っただけではテーマとして登録されないようで,そのことを理解せずに安易にバージョンアップを図ったのがいけなかったようです.

> 2系はまだまだ事例が少ないので、今後もぜひ何かありましたらフォーラムへ情報をお寄せください。お待ちしております

現在は私がいじっているだけなので,ほとんど問題は感じませんが,夏休みを明けて学生が使い始めると色々問題が出てくるものと思います.その時はレポートさせて頂きます.

Shin'ichi Tsumori への返信

Re: Moodle2.1にアップグレードできません

- Mikio Ikeda の投稿

こういった話題があったのに気づかなかったので、ずいぶんと遅い反応ですが、今年度の初めに、四日市大学も Moodle を 2.1 に大幅な upgrade をしました。その際に、昔のテーマに似せたものを作るのにちょっと苦労しました。

「テーマ設定」の中の「デザイナーモード」にするにチェックを入れないと、テーマの変更が反映さるまでに時間がかかります。キャッシュの問題だと思います。あとは、テーマフォルダ内の lang/en/theme_??.php の ??部分を新たなテーマ名に変更しないといけないことと、言語設定の中(moodledata/lang/ja/など)にtheme_(テーマ名).php を作っておくとよかったと思います。

評点平均: お役立ち度: ★★★★★★★ (2)