summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/bootstrap.inc5
-rw-r--r--includes/database/mysql/install.inc7
-rw-r--r--includes/database/pgsql/install.inc4
-rw-r--r--includes/database/sqlite/install.inc3
-rw-r--r--includes/install.inc4
5 files changed, 23 insertions, 0 deletions
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index e83832d5b..e332e01b4 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -37,6 +37,11 @@ define('DRUPAL_MINIMUM_MYSQL', '5.0.15');
define('DRUPAL_MINIMUM_PGSQL', '8.3');
/**
+ * Minimum supported version of SQLite, if it is used.
+ */
+define('DRUPAL_MINIMUM_SQLITE', '3.3.7');
+
+/**
* Indicates that the item should never be removed unless explicitly selected.
*
* The item may be removed using cache_clear_all() with a cache ID.
diff --git a/includes/database/mysql/install.inc b/includes/database/mysql/install.inc
index 59320f4f7..6965cb440 100644
--- a/includes/database/mysql/install.inc
+++ b/includes/database/mysql/install.inc
@@ -24,5 +24,12 @@ class DatabaseTasks_mysql extends DatabaseTasks {
public function name() {
return 'MySQL, MariaDB, or equivalent';
}
+
+ /**
+ * Returns the minimum version for mysql.
+ */
+ protected function minimumVersion() {
+ return DRUPAL_MINIMUM_MYSQL;
+ }
}
diff --git a/includes/database/pgsql/install.inc b/includes/database/pgsql/install.inc
index 82ba57ca8..1ff69580e 100644
--- a/includes/database/pgsql/install.inc
+++ b/includes/database/pgsql/install.inc
@@ -31,6 +31,10 @@ class DatabaseTasks_pgsql extends DatabaseTasks {
return 'PostgreSQL';
}
+ protected function minimumVersion() {
+ return DRUPAL_MINIMUM_PGSQL;
+ }
+
/**
* Check encoding is UTF8.
*/
diff --git a/includes/database/sqlite/install.inc b/includes/database/sqlite/install.inc
index 334e09dfd..07ce754f0 100644
--- a/includes/database/sqlite/install.inc
+++ b/includes/database/sqlite/install.inc
@@ -11,5 +11,8 @@ class DatabaseTasks_sqlite extends DatabaseTasks {
public function name() {
return 'SQLite';
}
+ protected function minimumVersion() {
+ return DRUPAL_MINIMUM_SQLITE;
+ }
}
diff --git a/includes/install.inc b/includes/install.inc
index e68e272d3..fd3ce35fb 100644
--- a/includes/install.inc
+++ b/includes/install.inc
@@ -349,6 +349,7 @@ abstract class DatabaseTasks {
}
abstract public function name();
+ abstract protected function minimumVersion();
/**
* Run database tasks and tests to see if Drupal can run on the database.
@@ -356,6 +357,9 @@ abstract class DatabaseTasks {
public function runTasks() {
// We need to establish a connection before we can run tests.
if ($this->connect()) {
+ if (version_compare(Database::getConnection()->version(), $this->minimumVersion()) < 0) {
+ throw new DatabaseTaskException(st("The database version %version is less than the minimum required version %minimum_version.", array('%version' => Database::getConnection()->version(), '%minimum_version' => $this->minimumVersion())));
+ }
foreach ($this->tasks as $task) {
if (!isset($task['function'])) {
$task['function'] = 'runTestQuery';