From 536ada309eb2e7fc347c5d7fb1b4eac8d9e21ce6 Mon Sep 17 00:00:00 2001 From: Daniel Hensby Date: Tue, 10 Oct 2017 13:09:06 +0100 Subject: [PATCH 1/2] Update module to work with new stricter index definitions --- code/SQLite3SchemaManager.php | 28 +++++++--------------------- composer.json | 2 +- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/code/SQLite3SchemaManager.php b/code/SQLite3SchemaManager.php index 73513ae..a494f40 100644 --- a/code/SQLite3SchemaManager.php +++ b/code/SQLite3SchemaManager.php @@ -4,7 +4,6 @@ namespace SilverStripe\SQLite; use SilverStripe\Control\Director; use SilverStripe\Dev\Debug; -use SilverStripe\Dev\SapphireTest; use SilverStripe\ORM\Connect\DBSchemaManager; use Exception; @@ -210,7 +209,7 @@ class SQLite3SchemaManager extends DBSchemaManager { $ok = true; - if (!SapphireTest::using_temp_db() && !self::$checked_and_repaired) { + if (!self::$checked_and_repaired) { $this->alterationMessage("Checking database integrity", "repaired"); // Check for any tables with failed integrity @@ -370,10 +369,9 @@ class SQLite3SchemaManager extends DBSchemaManager */ public function createIndex($tableName, $indexName, $indexSpec) { - $parsedSpec = $this->parseIndexSpec($indexName, $indexSpec); $sqliteName = $this->buildSQLiteIndexName($tableName, $indexName); - $columns = $parsedSpec['value']; - $unique = ($parsedSpec['type'] == 'unique') ? 'UNIQUE' : ''; + $columns = $this->implodeColumnList($indexSpec['columns']); + $unique = ($indexSpec['type'] == 'unique') ? 'UNIQUE' : ''; $this->query("CREATE $unique INDEX IF NOT EXISTS \"$sqliteName\" ON \"$tableName\" ($columns)"); } @@ -402,18 +400,6 @@ class SQLite3SchemaManager extends DBSchemaManager return "{$tableName}_{$indexName}"; } - protected function parseIndexSpec($name, $spec) - { - $spec = parent::parseIndexSpec($name, $spec); - - // Only allow index / unique index types - if (!in_array($spec['type'], array('index', 'unique'))) { - $spec['type'] = 'index'; - } - - return $spec; - } - public function indexKey($table, $index, $spec) { return $this->buildSQLiteIndexName($table, $index); @@ -437,11 +423,11 @@ class SQLite3SchemaManager extends DBSchemaManager } // Safely encode this spec - $indexList[$indexName] = $this->parseIndexSpec($indexName, array( + $indexList[$indexName] = array( 'name' => $indexName, - 'value' => $this->implodeColumnList($list), - 'type' => $indexType - )); + 'columns' => $list, + 'type' => $indexType, + ); } return $indexList; diff --git a/composer.json b/composer.json index 34a2073..cea94c9 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "silverstripe/vendor-plugin": "^1.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "phpunit/phpunit": "^5.7" }, "extra": { "branch-alias": { From c00a11cf7e750b604c580694feaebcae07cd422b Mon Sep 17 00:00:00 2001 From: Daniel Hensby Date: Tue, 10 Oct 2017 14:23:17 +0100 Subject: [PATCH 2/2] Travis setup --- .travis.yml | 32 ++++++++++++++++++-------------- phpunit.xml.dist | 16 ++++++++++++++++ 2 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 phpunit.xml.dist diff --git a/.travis.yml b/.travis.yml index 1d6f607..ec9a3b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,30 +1,34 @@ -# See https://github.com/silverstripe-labs/silverstripe-travis-support for setup details +language: php + +dist: precise sudo: false -language: php - php: - - 5.5 - 5.6 - 7.0 + - 7.1 env: - - DB=SQLITE CORE_RELEASE=master PDO=1 + - DB=SQLITE CORE_RELEASE=4 PDO=1 matrix: + fast_finish: true include: - php: 5.6 - env: DB=SQLITE CORE_RELEASE=master PDO=0 - allow_failures: - - php: 7.0 + env: DB=SQLITE CORE_RELEASE=4 PDO=0 before_script: - - composer self-update || true - - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support - - php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss - - cd ~/builds/ss - - composer install + # Init PHP + - printf "\n" | pecl install imagick + - phpenv rehash + - phpenv config-rm xdebug.ini + - echo 'memory_limit = 2048M' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini + +# Install composer dependencies + - composer validate + - composer require symfony/config:^3.2 silverstripe/framework:4.0.x-dev silverstripe/cms:4.0.x-dev silverstripe/siteconfig:4.0.x-dev silverstripe/config:1.0.x-dev silverstripe/admin:1.0.x-dev silverstripe/assets:1.0.x-dev silverstripe/versioned:1.0.x-dev --no-update + - composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile script: - - vendor/bin/phpunit framework/tests + - vendor/bin/phpunit vendor/silverstripe/framework/tests diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..7080c7b --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,16 @@ + + + + tests + + + + + . + + tests/ + + + + + \ No newline at end of file