From: toyomoyo Date: Wed, 9 May 2007 07:52:00 +0000 (+0000) Subject: changing grade book db so that grade_grades_text can be referenced from grade_grades_... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=ec19392b0664f62854c797183e35727819c4c1c5;p=moodle.git changing grade book db so that grade_grades_text can be referenced from grade_grades_final --- diff --git a/lib/db/install.xml b/lib/db/install.xml index 7df4bfcc75..08c2384af1 100644 --- a/lib/db/install.xml +++ b/lib/db/install.xml @@ -1347,9 +1347,10 @@ - - - + + + + @@ -1358,9 +1359,10 @@ - - - + + + +
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index 72b7575eab..d2b272336d 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -1199,6 +1199,58 @@ function xmldb_main_upgrade($oldversion=0) { /// Launch drop field gradescale $result = $result && drop_field($table, $field); } + + /// fixing the problem of grade_grades_text can't be referenced directly from grade_grades_final + if ($result && $oldversion < 2007050901) { + + /// Define key gradesid (foreign) to be dropped form grade_grades_text + $table = new XMLDBTable('grade_grades_text'); + $key = new XMLDBKey('gradesid'); + $key->setAttributes(XMLDB_KEY_FOREIGN, array('gradesid'), 'grade_grades_raw', array('id')); + + /// Launch drop key gradesid + $result = $result && drop_key($table, $key); + + /// Define field gradesid to be dropped from grade_grades_text + $table = new XMLDBTable('grade_grades_text'); + $field = new XMLDBField('gradesid'); + + /// Launch drop field gradesid + $result = $result && drop_field($table, $field); + + /// Define field itemid to be added to grade_grades_text + $table = new XMLDBTable('grade_grades_text'); + $field = new XMLDBField('itemid'); + $field->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null, 'id'); + + /// Launch add field itemid + $result = $result && add_field($table, $field); + + /// Define field userid to be added to grade_grades_text + $table = new XMLDBTable('grade_grades_text'); + $field = new XMLDBField('userid'); + $field->setAttributes(XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null, 'itemid'); + + /// Launch add field userid + $result = $result && add_field($table, $field); + + /// Define key itemid (foreign) to be added to grade_grades_text + $table = new XMLDBTable('grade_grades_text'); + $key = new XMLDBKey('itemid'); + $key->setAttributes(XMLDB_KEY_FOREIGN, array('itemid'), 'grade_item', array('id')); + + /// Launch add key itemid + $result = $result && add_key($table, $key); + + /// Define key userid (foreign) to be added to grade_grades_text + $table = new XMLDBTable('grade_grades_text'); + $key = new XMLDBKey('userid'); + $key->setAttributes(XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id')); + + /// Launch add key userid + $result = $result && add_key($table, $key); + + } return $result; } diff --git a/version.php b/version.php index 976059864a..2ff2158502 100644 --- a/version.php +++ b/version.php @@ -6,7 +6,7 @@ // This is compared against the values stored in the database to determine // whether upgrades should be performed (see lib/db/*.php) - $version = 2007050900; // YYYYMMDD = date + $version = 2007050901; // YYYYMMDD = date // XY = increments within a single day $release = '1.9 dev'; // Human-friendly version name