diff --git a/lib/db/install.xml b/lib/db/install.xml
index 399b6130dc0..da15f9e7d56 100644
--- a/lib/db/install.xml
+++ b/lib/db/install.xml
@@ -3600,10 +3600,8 @@
+
-
-
-
@@ -3619,6 +3617,8 @@
+
+
@@ -3636,6 +3636,8 @@
+
+
@@ -3654,6 +3656,7 @@
+
@@ -3669,6 +3672,8 @@
+
+
@@ -3688,6 +3693,7 @@
+
diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php
index fcc7154e394..5a5b4a57feb 100644
--- a/lib/db/upgrade.php
+++ b/lib/db/upgrade.php
@@ -2369,5 +2369,59 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2017082300.01);
}
+ if ($oldversion < 2017082500.00) {
+ // Handle FKs for the table 'analytics_models_log'.
+ $table = new xmldb_table('analytics_models_log');
+
+ // Remove the existing index before adding FK (which creates an index).
+ $index = new xmldb_index('modelid', XMLDB_INDEX_NOTUNIQUE, array('modelid'));
+
+ // Conditionally launch drop index.
+ if ($dbman->index_exists($table, $index)) {
+ $dbman->drop_index($table, $index);
+ }
+
+ // Now, add the FK.
+ $key = new xmldb_key('modelid', XMLDB_KEY_FOREIGN, array('modelid'), 'analytics_models', array('id'));
+ $dbman->add_key($table, $key);
+
+ // Handle FKs for the table 'analytics_predictions'.
+ $table = new xmldb_table('analytics_predictions');
+ $key = new xmldb_key('modelid', XMLDB_KEY_FOREIGN, array('modelid'), 'analytics_models', array('id'));
+ $dbman->add_key($table, $key);
+
+ $key = new xmldb_key('contextid', XMLDB_KEY_FOREIGN, array('contextid'), 'context', array('id'));
+ $dbman->add_key($table, $key);
+
+ // Handle FKs for the table 'analytics_train_samples'.
+ $table = new xmldb_table('analytics_train_samples');
+ $key = new xmldb_key('modelid', XMLDB_KEY_FOREIGN, array('modelid'), 'analytics_models', array('id'));
+ $dbman->add_key($table, $key);
+
+ $key = new xmldb_key('fileid', XMLDB_KEY_FOREIGN, array('fileid'), 'files', array('id'));
+ $dbman->add_key($table, $key);
+
+ // Handle FKs for the table 'analytics_predict_samples'.
+ $table = new xmldb_table('analytics_predict_samples');
+ $key = new xmldb_key('modelid', XMLDB_KEY_FOREIGN, array('modelid'), 'analytics_models', array('id'));
+ $dbman->add_key($table, $key);
+
+ // Handle FKs for the table 'analytics_used_files'.
+ $table = new xmldb_table('analytics_used_files');
+ $key = new xmldb_key('modelid', XMLDB_KEY_FOREIGN, array('modelid'), 'analytics_models', array('id'));
+ $dbman->add_key($table, $key);
+
+ $key = new xmldb_key('fileid', XMLDB_KEY_FOREIGN, array('fileid'), 'files', array('id'));
+ $dbman->add_key($table, $key);
+
+ // Handle FKs for the table 'analytics_indicator_calc'.
+ $table = new xmldb_table('analytics_indicator_calc');
+ $key = new xmldb_key('contextid', XMLDB_KEY_FOREIGN, array('contextid'), 'context', array('id'));
+ $dbman->add_key($table, $key);
+
+ // Main savepoint reached.
+ upgrade_main_savepoint(true, 2017082500.00);
+ }
+
return true;
}
diff --git a/version.php b/version.php
index fa899055d9f..767b38c15f1 100644
--- a/version.php
+++ b/version.php
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
-$version = 2017082400.00; // YYYYMMDD = weekly release date of this DEV branch.
+$version = 2017082500.00; // YYYYMMDD = weekly release date of this DEV branch.
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.