Was running Moodle 2.3.2 and went to upgrade to 2.4.1 today. I shifted the entire moodle installation directory aside and unzipped the 2.4.1 tarball in place. I copied across my old config file and themes/plugins from the old version.
Whenever I try to access any URL in the site, I receive:
Coding error detected, it must be fixed by a programmer: moodle_database::update_record_raw() id field must be specified.
There is no more useful output than this. The Apache error log simply says "Can not time out database session".
I tried using the Command Line upgrade tool instead, and receive two slightly different errors:
Default exception handler: Coding error detected, it must be fixed by a programmer: moodle_database::insert_record_raw() no fields found. Debug:
Error code: codingerror
* line 1092 of /lib/dml/mysqli_native_moodle_database.php: coding_exception thrown
* line 1149 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
* line 1306 of /lib/moodlelib.php: call to mysqli_native_moodle_database->insert_record()
* line 7025 of /lib/moodlelib.php: call to set_config()
* line 1502 of /lib/moodlelib.php: call to core_string_manager->reset_caches()
* line 1472 of /lib/upgradelib.php: call to purge_all_caches()
* line 153 of /admin/cli/upgrade.php: call to upgrade_core()
!!! Coding error detected, it must be fixed by a programmer: moodle_database::insert_record_raw() no fields found. !!!
!!
Error code: codingerror !!
!! Stack trace: * line 1092 of /lib/dml/mysqli_native_moodle_database.php: coding_exception thrown
* line 1149 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
* line 1306 of /lib/moodlelib.php: call to mysqli_native_moodle_database->insert_record()
* line 7025 of /lib/moodlelib.php: call to set_config()
* line 1502 of /lib/moodlelib.php: call to core_string_manager->reset_caches()
* line 1472 of /lib/upgradelib.php: call to purge_all_caches()
* line 153 of /admin/cli/upgrade.php: call to upgrade_core()
!!
So I cannot complete the upgrade by either means. I tried swapping back to the 2.3 codebase, but I receive the same error message when attempting to access the site via a browser. This concerns me more because it implies some changes have taken place to the database, but obviously not enough to complete the upgrade process.
On top of this I've discovered I don't actually have a backup of the MySQL database, so I'm now truly freaked out at the notion of losing my Moodle installation altogether. Any help/advice would be very welcome. If there's any more information I can provide to help narrow down the cause, please let me know.