Add-on Questionnaire 2.6 へのアップグレードでデータベースエラー

MoodleオープンソースのLMS, Questionnaire は Core の Feedback と役割が重複するところもあるけど捨てがたいアンケート用 Add-on.

Moodle と Questionnaire を 2.4 → 2.5 → 2.6 とアップグレードしたところ,

  • Questionnaire 活動の結果を表示しようとするとエラーになる(テーブルが読めないみたいな?)
  • Questionnaire 活動を含むコースをバックアップしようとするとエラーになる(テーブルが読めないみたいな?)
  • Questionnaire 活動を含むコースをリストアしようとエラーになる

最後のエラーでは, questionnaire_fb_sections テーブルがない, という具体的なエラーメッセージが出たので, 次のスレッドにたどりつけた. 作者の Joseph R〓ezeau さんご自身が答えられている. questionnaire_fb_sections と questionnaire_feedback の2つのテーブルがアップグレード時に追加されないというバグだったのね.

Moodle in English: Updating Questionnaire to version 2.6.2
https://moodle.org/mod/forum/discuss.php?d=251262

こちらの環境では,

  • ダウングレード→アップグレードではだめ(ダウングレードでエラーになる)
  • アンインストール→インストールはやりたくない(アンインストールでデータ消えるんでしょ)

要は mod/questionnaire/db/upgrade.php に定義されてる関数を呼んで正しく実行されればいいんでしょうが, もう, MySQL に手動でテーブル作っちゃいました.

use (MOODLEデータベース);

create table questionnaire_fb_sections(
id INT(18) NOT NULL AUTO_INCREMENT PRIMARY KEY,
survey_id INT(18) NOT NULL,
section INT(2),
scorecalculation TEXT,
sectionlabel CHAR(50),
sectionheading TEXT,
sectionheadingformat INT(2) DEFAULT 1,
PRIMARY KEY (id)
);

create table questionnaire_feedback(
id INT(18) NOT NULL AUTO_INCREMENT PRIMARY KEY,
section_id INT(18) NOT NULL,
feedbacklabel CHAR(30),
feedbacktext TEXT,
feedbacktextformat INT(2) DEFAULT 1,
minscore DOUBLE(10,5) DEFAULT '0.00000',
maxscore DOUBLE(10,5) DEFAULT '101.00000'
);

データを失うことなくすべて復活.

non-Core なモジュール使うのには覚悟いるな〜