diff options
-rw-r--r-- | includes/bootstrap.inc | 5 | ||||
-rw-r--r-- | includes/database/mysql/install.inc | 7 | ||||
-rw-r--r-- | includes/database/pgsql/install.inc | 4 | ||||
-rw-r--r-- | includes/database/sqlite/install.inc | 3 | ||||
-rw-r--r-- | includes/install.inc | 4 |
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'; |