diff --git a/db/upgrade.php b/db/upgrade.php
index dee0096d5c1f4e42e5cfbd690eb874fceed62ca2..dcad1a6a51ab42713957bf50a3983c8f71bba0e6 100644
--- a/db/upgrade.php
+++ b/db/upgrade.php
@@ -524,14 +524,16 @@ function hvp_upgrade_2020082800() {
* Drop old unused unique index, add nonunique index.
*/
function hvp_upgrade_2020091500() {
- global $DB;
- $dbman = $DB->get_manager();
- $table = new xmldb_table('hvp_xapi_results');
- $index = new xmldb_index('results', XMLDB_INDEX_NOTUNIQUE, ['content_id', 'user_id']);
- $dbman->add_index($table, $index);
-
- $oldindex = new xmldb_index('result', XMLDB_INDEX_UNIQUE, ['id', 'content_id', 'user_id']);
- $dbman->drop_index($table, $oldindex);
+ global $DB;
+ $dbman = $DB->get_manager();
+ $table = new xmldb_table('hvp_xapi_results');
+ $index = new xmldb_index('results', XMLDB_INDEX_NOTUNIQUE, ['content_id', 'user_id']);
+ if (!$dbman->index_exists($table, $index)) {
+ $dbman->add_index($table, $index);
+ }
+
+ $oldindex = new xmldb_index('result', XMLDB_INDEX_UNIQUE, ['id', 'content_id', 'user_id']);
+ $dbman->drop_index($table, $oldindex);
}
function hvp_upgrade_2020112600() {