diff --git a/lib/ddllib.php b/lib/ddllib.php index 417927d142f..3c4d3a52a73 100644 --- a/lib/ddllib.php +++ b/lib/ddllib.php @@ -595,6 +595,12 @@ function add_field($table, $field, $continue=true, $feedback=true) { return false; } +/// Check the field doesn't exist + if (field_exists($table, $field)) { + debugging('Field ' . $field->getName() . ' exists. Skipping its creation', DEBUG_DEVELOPER); + return true; + } + if(!$sqlarr = $table->getAddFieldSQL($CFG->dbtype, $CFG->prefix, $field, false)) { return true; //Empty array = nothing to do = no error } @@ -625,6 +631,12 @@ function drop_field($table, $field, $continue=true, $feedback=true) { return false; } +/// Check the field exists + if (!field_exists($table, $field)) { + debugging('Field ' . $field->getName() . ' do not exist. Skipping its deletion', DEBUG_DEVELOPER); + return true; + } + if(!$sqlarr = $table->getDropFieldSQL($CFG->dbtype, $CFG->prefix, $field, false)) { return true; //Empty array = nothing to do = no error }