Commit 6f889e12 by Carsten Brandt

Merge PR #6763 branch 'creocoder-incorrect-checking-sqlite-version'

* creocoder-incorrect-checking-sqlite-version: improved db test, avoid error by accessing db directlry fixed failure on sqlite version check Correct SQLite version checking
parents cd2ba599 0300683b
......@@ -66,7 +66,8 @@ class QueryBuilder extends \yii\db\QueryBuilder
{
// SQLite supports batch insert natively since 3.7.11
// http://www.sqlite.org/releaselog/3_7_11.html
if (version_compare(\SQLite3::version()['versionString'], '3.7.11', '>=')) {
$this->db->open(); // ensure pdo is not null
if (version_compare($this->db->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), '3.7.11', '>=')) {
return parent::batchInsert($table, $columns, $rows);
}
......
......@@ -11,7 +11,7 @@ abstract class DatabaseTestCase extends TestCase
/**
* @var Connection
*/
protected $db;
private $_db;
protected function setUp()
{
......@@ -28,8 +28,8 @@ abstract class DatabaseTestCase extends TestCase
protected function tearDown()
{
if ($this->db) {
$this->db->close();
if ($this->_db) {
$this->_db->close();
}
$this->destroyApplication();
}
......@@ -41,8 +41,8 @@ abstract class DatabaseTestCase extends TestCase
*/
public function getConnection($reset = true, $open = true)
{
if (!$reset && $this->db) {
return $this->db;
if (!$reset && $this->_db) {
return $this->_db;
}
$config = $this->database;
if (isset($config['fixture'])) {
......@@ -52,11 +52,11 @@ abstract class DatabaseTestCase extends TestCase
$fixture = null;
}
try {
$this->db = $this->prepareDatabase($config, $fixture, $open);
$this->_db = $this->prepareDatabase($config, $fixture, $open);
} catch (\Exception $e) {
$this->markTestSkipped("Something wrong when preparing database: " . $e->getMessage());
}
return $this->db;
return $this->_db;
}
public function prepareDatabase($config, $fixture, $open = true)
......
......@@ -84,7 +84,8 @@ class SqliteQueryBuilderTest extends QueryBuilderTest
public function testBatchInsert()
{
if (version_compare(\SQLite3::version()['versionString'], '3.7.11', '>=')) {
$db = $this->getConnection();
if (version_compare($db->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), '3.7.11', '>=')) {
$this->markTestSkipped('This test is only relevant for SQLite < 3.7.11');
}
$sql = $this->getQueryBuilder()->batchInsert('{{customer}} t', ['t.id', 't.name'], [[1, 'a'], [2, 'b']]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment