summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2014-07-25 08:46:43 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2014-07-30 11:50:26 +0200
commitdc41f63930648531c17d39ad38ab191b0c9da66b (patch)
tree1b63a1b24d739c2f0d7257dbb82d677443370803
parent185e41afddb6daa51b2a94123b90f84d715bd413 (diff)
downloadnextcloud-server-dc41f63930648531c17d39ad38ab191b0c9da66b.tar.gz
nextcloud-server-dc41f63930648531c17d39ad38ab191b0c9da66b.zip
migration test for sqlite - adding type mapping for 'tinyint unsigned'
-rw-r--r--lib/private/db/sqlitemigrator.php13
-rw-r--r--tests/lib/db/mysqlmigration.php (renamed from tests/lib/db/migration.php)2
-rw-r--r--tests/lib/db/sqlitemigration.php39
3 files changed, 53 insertions, 1 deletions
diff --git a/lib/private/db/sqlitemigrator.php b/lib/private/db/sqlitemigrator.php
index 81bbcb567ea..94b421c5562 100644
--- a/lib/private/db/sqlitemigrator.php
+++ b/lib/private/db/sqlitemigrator.php
@@ -9,6 +9,7 @@
namespace OC\DB;
use Doctrine\DBAL\DBALException;
+use Doctrine\DBAL\Schema\Schema;
class SQLiteMigrator extends Migrator {
@@ -61,4 +62,16 @@ class SQLiteMigrator extends Migrator {
$tmpFile = uniqid("oc_");
return "$dataDir/$tmpFile.db";
}
+
+ /**
+ * @param Schema $targetSchema
+ * @param \Doctrine\DBAL\Connection $connection
+ * @return \Doctrine\DBAL\Schema\SchemaDiff
+ */
+ protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
+ $platform = $connection->getDatabasePlatform();
+ $platform->registerDoctrineTypeMapping('tinyint unsigned', 'integer');
+
+ return parent::getDiff($targetSchema, $connection);
+ }
}
diff --git a/tests/lib/db/migration.php b/tests/lib/db/mysqlmigration.php
index 820a1431f54..584df1d4465 100644
--- a/tests/lib/db/migration.php
+++ b/tests/lib/db/mysqlmigration.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-class TestMigration extends \PHPUnit_Framework_TestCase {
+class TestMySqlMigration extends \PHPUnit_Framework_TestCase {
/** @var \Doctrine\DBAL\Connection */
private $connection;
diff --git a/tests/lib/db/sqlitemigration.php b/tests/lib/db/sqlitemigration.php
new file mode 100644
index 00000000000..adfc03a2ca7
--- /dev/null
+++ b/tests/lib/db/sqlitemigration.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+class TestSqliteMigration extends \PHPUnit_Framework_TestCase {
+
+ /** @var \Doctrine\DBAL\Connection */
+ private $connection;
+
+ /** @var string */
+ private $tableName;
+
+ public function setUp() {
+ $this->connection = \OC_DB::getConnection();
+ if (!$this->connection->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\SqlitePlatform) {
+ $this->markTestSkipped("Test only relevant on Sqlite");
+ }
+
+ $dbPrefix = \OC::$server->getConfig()->getSystemValue("dbtableprefix");
+ $this->tableName = uniqid($dbPrefix . "_enum_bit_test");
+ $this->connection->exec("CREATE TABLE $this->tableName(t0 tinyint unsigned, t1 tinyint)");
+ }
+
+ public function tearDown() {
+ $this->connection->getSchemaManager()->dropTable($this->tableName);
+ }
+
+ public function testNonOCTables() {
+ $manager = new \OC\DB\MDB2SchemaManager($this->connection);
+ $manager->updateDbFromStructure(__DIR__ . '/testschema.xml');
+
+ $this->assertTrue(true);
+ }
+
+}