コースのカテゴリを変更したいのですがコースの数が何万件とあるので、Moodleで手作業でやるのは困難と考えています。
そこでツールを作成してカテゴリを変更しようと思うのですが、どのカラムの値を変更していいかわかりません。
ご存知の方いらっしゃればご教授願いたいと思います。
ちなみにコースにはリソースや小テスト、課題がいくつか登録されています。
よろしくお願いいたします
Moodleコースカテゴリが登録される「mdl_course_categories」MySQLテーブル内の「id」の値が、Moodleコースが登録される「mdl_course」MySQLテーブル内のフィールド「category」に設定されます。
ですから、「mdl_course」MySQLテーブル内のフィールド「category」の値を直接変更することで、そのコースが属しているカテゴリが変更されます。
ちなみに、存在しないカテゴリの値 (例 99999) をフィールド「category」に設定した場合、「サイト管理 > コース > コースの追加/編集」にアクセスした時点で正常な値「1」が設定されるようです。
念のため、Moodleにお使いのMySQLデータベースをバックアップされた後、phpMyAdmin等のツールを使って、カテゴリ変更をお試し頂いた方が宜しいかと思います。
Mitsuhiro Yoshida様のいうとおりにやればできました。
ありがとうございます。
コース、リソース、課題、小テストのmdl_context.pathは変更しなくても大丈夫なんでしょうか。
今のところちゃんと動いているので問題ないですが・・・
> コース、リソース、課題、小テストのmdl_context.pathは変更しなくても大丈夫なんでしょうか。
大変申し訳ございません。
私の調査が不十分でした。
大変お手数ですが、可能でしたら、変更される前の状態に戻してください。
masayuki kai様ご指摘のように、特定のコースを別のカテゴリへ移動した場合、「mdl_context」テーブルのフィールド「path」が変更されます。数万のコースの安定運用を考えます場合、元に戻された方が宜しいかと思います。
「mdl_context」テーブルに関しましては、ご参考までに下記投稿およびバグ報告をご覧ください。
[Using Moodle: HELP WITH The MDL_CONTEXT Table]
http://moodle.org/mod/forum/discuss.php?d=66293
[Japanese: mdl_contextテーブルのpathについて]
http://moodle.org/mod/forum/discuss.php?d=147484
[[#MDL-26135] mdl_context paths get corrupted when moving course categories - Moodle Tracker]
http://tracker.moodle.org/browse/MDL-26135
[[#MDL-14290] Paths sometimes get corrupted in the mdl_context table - Moodle Tracker]
http://tracker.moodle.org/browse/MDL-14290