I had installed a rather ancient version of the scheduler module (2008061700) which was getting long in the tooth and so I decided to update it the the newest version (2010091800
) for Moodle 1.9. I am doing this update with a copy of our production database so that I can test out both the update process and the module behaviour with real data. Now, my understanding is that when plugin modules update if there is a change in a database table this will be taken care of by the updating process. Well, this seems to to have happended for the update I am trying to accomplish because I get the following errors:
This script generated 2 warnings - Scroll to the first warning
scheduler module needs upgrading
(mysql): SELECT COUNT(*) FROM mdl_scheduler_appointment
(mysql): SHOW TABLES
(mysql): SHOW INDEX FROM mdl_scheduler_appointment
(mysql): CREATE INDEX mdl_scheappo_sch_ix ON mdl_scheduler_appointment (schedulerid)
1072: Key column 'schedulerid' doesn't exist in table
ADOConnection._Execute(CREATE INDEX mdl_scheappo_sch_ix ON mdl_scheduler_appointment (schedulerid), false) % line 891, file: adodb.inc.php
ADOConnection.Execute(CREATE INDEX mdl_scheappo_sch_ix ON mdl_scheduler_appointment (schedulerid)) % line 89, file: dmllib.php
execute_sql(CREATE INDEX mdl_scheappo_sch_ix ON mdl_scheduler_appointment (schedulerid), true) % line 2364, file: dmllib.php
execute_sql_arr(Array[1], true, true) % line 1458, file: ddllib.php
add_index(Object:XMLDBTable, Object:XMLDBIndex) % line 116, file: upgrade.php
Upgrading scheduler from 2008061700 to 2010091800 FAILED!
Inspecting mdl_scheduler_appointment table reveals that the field schedulerid does not indeed exist.I figured that I could create the field manually and I was told "Look at the install.xml file in the mod/scheduler/db folder and you should see a description of it." Alas, the install.xml file contains no reference to 'schedulerid' in table scheduler_appointment. So I'm not sure of where to go from here.
Maybe if I dropped all the tables and had my test moodle system create them from scratch to see whether schedulerid is created in the scheduler_appointmtne table that would be a start. Then, perhaps importing the production database over the top might leave the filed where it ought to be.