mirror of
https://github.com/silverstripe/silverstripe-mssql
synced 2024-10-22 08:05:53 +02:00
ENHANCEMENT Added MSSQLDatabaseConfigurationHelper::requireDatabaseVersion() to check for SQL Server 2008 SP1 as a minimum requirement
This commit is contained in:
parent
cb499039ab
commit
104a242b97
@ -98,6 +98,50 @@ class MSSQLDatabaseConfigurationHelper implements DatabaseConfigurationHelper {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that the SQL Server version is at least 10.00.1600 (SQL Server 2008 RTM).
|
||||
* @see http://www.sqlteam.com/article/sql-server-versions
|
||||
* @param array $databaseConfig Associative array of db configuration, e.g. "server", "username" etc
|
||||
* @return array Result - e.g. array('success' => true, 'error' => 'details of error')
|
||||
*/
|
||||
public function requireDatabaseVersion($databaseConfig) {
|
||||
$success = false;
|
||||
$error = '';
|
||||
$version = 0;
|
||||
|
||||
// Get the version using SERVERPROPERTY() function
|
||||
if(function_exists('mssql_connect')) {
|
||||
$conn = @mssql_connect($databaseConfig['server'], $databaseConfig['username'], $databaseConfig['password'], true);
|
||||
$result = @mssql_query("SELECT SERVERPROPERTY('ProductVersion')", $conn);
|
||||
$row = @mssql_fetch_array($result);
|
||||
} else {
|
||||
$conn = @sqlsrv_connect($databaseConfig['server'], array(
|
||||
'UID' => $databaseConfig['username'],
|
||||
'PWD' => $databaseConfig['password']
|
||||
));
|
||||
$result = @sqlsrv_query($conn, "SELECT SERVERPROPERTY('ProductVersion')");
|
||||
$row = @sqlsrv_fetch_array($result);
|
||||
}
|
||||
|
||||
if($row && isset($row[0])) {
|
||||
$version = $row[0];
|
||||
}
|
||||
|
||||
if($version) {
|
||||
$success = version_compare($version, '10.00.1600', '>=');
|
||||
if(!$success) {
|
||||
$error = "Your SQL Server version is $version. It's recommended you use at least 10.00.2531 (SQL Server 2008 SP1).";
|
||||
}
|
||||
} else {
|
||||
$error = "Your SQL Server version could not be determined.";
|
||||
}
|
||||
|
||||
return array(
|
||||
'success' => $success,
|
||||
'error' => $error
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that the database connection is able to use an existing database,
|
||||
* or be able to create one if it doesn't exist.
|
||||
|
Loading…
Reference in New Issue
Block a user