summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170825134824.php8
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170919104507.php8
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170924124212.php8
-rw-r--r--apps/dav/lib/Migration/Version1004Date20170926103422.php3
-rw-r--r--apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607104347.php8
-rw-r--r--apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607113030.php12
-rw-r--r--apps/twofactor_backupcodes/lib/Migration/Version1002Date20170919123342.php8
-rw-r--r--apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php3
-rw-r--r--core/Command/Db/Migrations/GenerateCommand.php10
-rw-r--r--core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php2
-rw-r--r--core/Migrations/Version13000Date20170705121758.php8
-rw-r--r--core/Migrations/Version13000Date20170718121200.php8
-rw-r--r--core/Migrations/Version13000Date20170814074715.php12
-rw-r--r--core/Migrations/Version13000Date20170919121250.php12
-rw-r--r--core/Migrations/Version13000Date20170926101637.php3
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/private/DB/MigrationService.php4
-rw-r--r--lib/private/DB/SchemaWrapper.php33
-rw-r--r--lib/public/DB/ISchemaWrapper.php92
-rw-r--r--lib/public/Migration/BigIntMigration.php8
-rw-r--r--lib/public/Migration/IMigrationStep.php10
-rw-r--r--lib/public/Migration/SimpleMigrationStep.php10
-rw-r--r--tests/lib/DB/MigrationsTest.php2
24 files changed, 176 insertions, 98 deletions
diff --git a/apps/dav/lib/Migration/Version1004Date20170825134824.php b/apps/dav/lib/Migration/Version1004Date20170825134824.php
index dceb1ffbbdc..26855c2e23e 100644
--- a/apps/dav/lib/Migration/Version1004Date20170825134824.php
+++ b/apps/dav/lib/Migration/Version1004Date20170825134824.php
@@ -23,20 +23,20 @@
*/
namespace OCA\DAV\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
class Version1004Date20170825134824 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('addressbooks')) {
diff --git a/apps/dav/lib/Migration/Version1004Date20170919104507.php b/apps/dav/lib/Migration/Version1004Date20170919104507.php
index d4c7026aea8..2cf4065011b 100644
--- a/apps/dav/lib/Migration/Version1004Date20170919104507.php
+++ b/apps/dav/lib/Migration/Version1004Date20170919104507.php
@@ -23,7 +23,7 @@
*/
namespace OCA\DAV\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -31,13 +31,13 @@ class Version1004Date20170919104507 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
$table = $schema->getTable('addressbooks');
diff --git a/apps/dav/lib/Migration/Version1004Date20170924124212.php b/apps/dav/lib/Migration/Version1004Date20170924124212.php
index 425747af742..e3f509b2a71 100644
--- a/apps/dav/lib/Migration/Version1004Date20170924124212.php
+++ b/apps/dav/lib/Migration/Version1004Date20170924124212.php
@@ -22,7 +22,7 @@
*/
namespace OCA\DAV\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -30,13 +30,13 @@ class Version1004Date20170924124212 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
$table = $schema->getTable('cards');
diff --git a/apps/dav/lib/Migration/Version1004Date20170926103422.php b/apps/dav/lib/Migration/Version1004Date20170926103422.php
index d50cbae396b..5da6465bc86 100644
--- a/apps/dav/lib/Migration/Version1004Date20170926103422.php
+++ b/apps/dav/lib/Migration/Version1004Date20170926103422.php
@@ -23,10 +23,7 @@
*/
namespace OCA\DAV\Migration;
-use Doctrine\DBAL\Schema\Schema;
use OCP\Migration\BigIntMigration;
-use OCP\Migration\SimpleMigrationStep;
-use OCP\Migration\IOutput;
/**
* Auto-generated migration step: Please modify to your needs!
diff --git a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607104347.php b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607104347.php
index a7823c5b7a8..9d369ae3a8d 100644
--- a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607104347.php
+++ b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607104347.php
@@ -23,7 +23,7 @@
namespace OCA\TwoFactorBackupCodes\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use Doctrine\DBAL\Types\Type;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -31,13 +31,13 @@ use OCP\Migration\IOutput;
class Version1002Date20170607104347 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('twofactor_backupcodes')) {
diff --git a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607113030.php b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607113030.php
index dae9e011787..6895aa44a51 100644
--- a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607113030.php
+++ b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170607113030.php
@@ -23,7 +23,7 @@
namespace OCA\TwoFactorBackupCodes\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Migration\SimpleMigrationStep;
@@ -43,12 +43,12 @@ class Version1002Date20170607113030 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('twofactor_backup_codes')) {
@@ -87,13 +87,13 @@ class Version1002Date20170607113030 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if ($schema->hasTable('twofactor_backup_codes')) {
diff --git a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170919123342.php b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170919123342.php
index bb35a900a1e..5cbbcb2ecca 100644
--- a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170919123342.php
+++ b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170919123342.php
@@ -23,8 +23,8 @@
namespace OCA\TwoFactorBackupCodes\Migration;
-use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -32,13 +32,13 @@ class Version1002Date20170919123342 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
$table = $schema->getTable('twofactor_backupcodes');
diff --git a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php
index 8072ebd6810..0e19fe2a35e 100644
--- a/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php
+++ b/apps/twofactor_backupcodes/lib/Migration/Version1002Date20170926101419.php
@@ -1,10 +1,7 @@
<?php
namespace OCA\TwoFactorBackupCodes\Migration;
-use Doctrine\DBAL\Schema\Schema;
use OCP\Migration\BigIntMigration;
-use OCP\Migration\SimpleMigrationStep;
-use OCP\Migration\IOutput;
/**
* Auto-generated migration step: Please modify to your needs!
diff --git a/core/Command/Db/Migrations/GenerateCommand.php b/core/Command/Db/Migrations/GenerateCommand.php
index 8fbc1781d94..e37c51e85fb 100644
--- a/core/Command/Db/Migrations/GenerateCommand.php
+++ b/core/Command/Db/Migrations/GenerateCommand.php
@@ -39,7 +39,7 @@ class GenerateCommand extends Command {
'<?php
namespace {{namespace}};
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -50,7 +50,7 @@ class {{classname}} extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
@@ -59,9 +59,9 @@ class {{classname}} extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
@@ -70,7 +70,7 @@ class {{classname}} extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
diff --git a/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php b/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php
index d8dc2be11a4..3ccaa563e89 100644
--- a/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php
+++ b/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php
@@ -91,7 +91,7 @@ class GenerateFromSchemaFileCommand extends GenerateCommand {
*/
protected function schemaToMigration(Schema $schema) {
$content = <<<'EOT'
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
EOT;
diff --git a/core/Migrations/Version13000Date20170705121758.php b/core/Migrations/Version13000Date20170705121758.php
index 6f9c2d243f8..9d8b373b6b9 100644
--- a/core/Migrations/Version13000Date20170705121758.php
+++ b/core/Migrations/Version13000Date20170705121758.php
@@ -23,21 +23,21 @@
namespace OC\Core\Migrations;
-use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
class Version13000Date20170705121758 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('personal_sections')) {
diff --git a/core/Migrations/Version13000Date20170718121200.php b/core/Migrations/Version13000Date20170718121200.php
index e71debfcb4b..139129eb600 100644
--- a/core/Migrations/Version13000Date20170718121200.php
+++ b/core/Migrations/Version13000Date20170718121200.php
@@ -23,8 +23,8 @@
namespace OC\Core\Migrations;
-use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -32,13 +32,13 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
if (!$schema->hasTable('appconfig')) {
diff --git a/core/Migrations/Version13000Date20170814074715.php b/core/Migrations/Version13000Date20170814074715.php
index 097db51984e..0eae4167fb6 100644
--- a/core/Migrations/Version13000Date20170814074715.php
+++ b/core/Migrations/Version13000Date20170814074715.php
@@ -23,7 +23,7 @@
namespace OC\Core\Migrations;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -31,7 +31,7 @@ class Version13000Date20170814074715 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
@@ -40,13 +40,13 @@ class Version13000Date20170814074715 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
@@ -69,7 +69,7 @@ class Version13000Date20170814074715 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
diff --git a/core/Migrations/Version13000Date20170919121250.php b/core/Migrations/Version13000Date20170919121250.php
index 0857d6d5ceb..6bdd79cf672 100644
--- a/core/Migrations/Version13000Date20170919121250.php
+++ b/core/Migrations/Version13000Date20170919121250.php
@@ -23,7 +23,7 @@
*/
namespace OC\Core\Migrations;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\Migration\SimpleMigrationStep;
use OCP\Migration\IOutput;
@@ -34,7 +34,7 @@ class Version13000Date20170919121250 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
@@ -43,13 +43,13 @@ class Version13000Date20170919121250 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
$table = $schema->getTable('jobs');
@@ -115,7 +115,7 @@ class Version13000Date20170919121250 extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
diff --git a/core/Migrations/Version13000Date20170926101637.php b/core/Migrations/Version13000Date20170926101637.php
index f51828e7a33..088de988020 100644
--- a/core/Migrations/Version13000Date20170926101637.php
+++ b/core/Migrations/Version13000Date20170926101637.php
@@ -23,10 +23,7 @@
*/
namespace OC\Core\Migrations;
-use Doctrine\DBAL\Schema\Schema;
use OCP\Migration\BigIntMigration;
-use OCP\Migration\SimpleMigrationStep;
-use OCP\Migration\IOutput;
/**
* Auto-generated migration step: Please modify to your needs!
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index f392e55037f..7b82da1dc20 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -99,6 +99,7 @@ return array(
'OCP\\Contacts\\ContactsMenu\\IProvider' => $baseDir . '/lib/public/Contacts/ContactsMenu/IProvider.php',
'OCP\\Contacts\\IManager' => $baseDir . '/lib/public/Contacts/IManager.php',
'OCP\\DB' => $baseDir . '/lib/public/DB.php',
+ 'OCP\\DB\\ISchemaWrapper' => $baseDir . '/lib/public/DB/ISchemaWrapper.php',
'OCP\\DB\\QueryBuilder\\ICompositeExpression' => $baseDir . '/lib/public/DB/QueryBuilder/ICompositeExpression.php',
'OCP\\DB\\QueryBuilder\\IExpressionBuilder' => $baseDir . '/lib/public/DB/QueryBuilder/IExpressionBuilder.php',
'OCP\\DB\\QueryBuilder\\IFunctionBuilder' => $baseDir . '/lib/public/DB/QueryBuilder/IFunctionBuilder.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index c656412fb90..67ae9f84d3c 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -123,6 +123,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\Contacts\\ContactsMenu\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Contacts/ContactsMenu/IProvider.php',
'OCP\\Contacts\\IManager' => __DIR__ . '/../../..' . '/lib/public/Contacts/IManager.php',
'OCP\\DB' => __DIR__ . '/../../..' . '/lib/public/DB.php',
+ 'OCP\\DB\\ISchemaWrapper' => __DIR__ . '/../../..' . '/lib/public/DB/ISchemaWrapper.php',
'OCP\\DB\\QueryBuilder\\ICompositeExpression' => __DIR__ . '/../../..' . '/lib/public/DB/QueryBuilder/ICompositeExpression.php',
'OCP\\DB\\QueryBuilder\\IExpressionBuilder' => __DIR__ . '/../../..' . '/lib/public/DB/QueryBuilder/IExpressionBuilder.php',
'OCP\\DB\\QueryBuilder\\IFunctionBuilder' => __DIR__ . '/../../..' . '/lib/public/DB/QueryBuilder/IFunctionBuilder.php',
diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php
index 729f9753dfb..25eaa628e52 100644
--- a/lib/private/DB/MigrationService.php
+++ b/lib/private/DB/MigrationService.php
@@ -423,7 +423,7 @@ class MigrationService {
}
$instance->preSchemaChange($this->output, function() {
- return $this->connection->createSchema();
+ return new SchemaWrapper($this->connection);
}, ['tablePrefix' => $this->connection->getPrefix()]);
$toSchema = $instance->changeSchema($this->output, function() {
@@ -436,7 +436,7 @@ class MigrationService {
}
$instance->postSchemaChange($this->output, function() {
- return $this->connection->createSchema();
+ return new SchemaWrapper($this->connection);
}, ['tablePrefix' => $this->connection->getPrefix()]);
$this->markAsExecuted($version);
diff --git a/lib/private/DB/SchemaWrapper.php b/lib/private/DB/SchemaWrapper.php
index 2a0660b2a88..4f05b7b00ef 100644
--- a/lib/private/DB/SchemaWrapper.php
+++ b/lib/private/DB/SchemaWrapper.php
@@ -25,9 +25,10 @@ namespace OC\DB;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
use OCP\IDBConnection;
-class SchemaWrapper {
+class SchemaWrapper implements ISchemaWrapper {
/** @var IDBConnection|Connection */
protected $connection;
@@ -76,6 +77,13 @@ class SchemaWrapper {
// Overwritten methods
/**
+ * @return array
+ */
+ public function getTableNames() {
+ return $this->schema->getTableNames();
+ }
+
+ /**
* @param string $tableName
*
* @return \Doctrine\DBAL\Schema\Table
@@ -107,19 +115,6 @@ class SchemaWrapper {
}
/**
- * Renames a table.
- *
- * @param string $oldTableName
- * @param string $newTableName
- *
- * @return \Doctrine\DBAL\Schema\Schema
- * @throws DBALException
- */
- public function renameTable($oldTableName, $newTableName) {
- throw new DBALException('Renaming tables is not supported. Please create and drop the tables manually.');
- }
-
- /**
* Drops a table from the schema.
*
* @param string $tableName
@@ -131,11 +126,11 @@ class SchemaWrapper {
}
/**
- * @param string $name
- * @param array $arguments
- * @return mixed
+ * Gets all tables of this schema.
+ *
+ * @return \Doctrine\DBAL\Schema\Table[]
*/
- public function __call($name, $arguments) {
- return call_user_func_array([$this->schema, $name], $arguments);
+ public function getTables() {
+ return $this->schema->getTables();
}
}
diff --git a/lib/public/DB/ISchemaWrapper.php b/lib/public/DB/ISchemaWrapper.php
new file mode 100644
index 00000000000..b29831dbc2e
--- /dev/null
+++ b/lib/public/DB/ISchemaWrapper.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCP\DB;
+
+/**
+ * Interface ISchemaWrapper
+ *
+ * @package OCP\DB
+ * @since 13.0.0
+ */
+interface ISchemaWrapper {
+
+ /**
+ * @param string $tableName
+ *
+ * @return \Doctrine\DBAL\Schema\Table
+ * @throws \Doctrine\DBAL\Schema\SchemaException
+ * @since 13.0.0
+ */
+ public function getTable($tableName);
+
+ /**
+ * Does this schema have a table with the given name?
+ *
+ * @param string $tableName Prefix is automatically prepended
+ *
+ * @return boolean
+ * @since 13.0.0
+ */
+ public function hasTable($tableName);
+
+ /**
+ * Creates a new table.
+ *
+ * @param string $tableName Prefix is automatically prepended
+ * @return \Doctrine\DBAL\Schema\Table
+ * @since 13.0.0
+ */
+ public function createTable($tableName);
+
+ /**
+ * Drops a table from the schema.
+ *
+ * @param string $tableName Prefix is automatically prepended
+ * @return \Doctrine\DBAL\Schema\Schema
+ * @since 13.0.0
+ */
+ public function dropTable($tableName);
+
+ /**
+ * Gets all tables of this schema.
+ *
+ * @return \Doctrine\DBAL\Schema\Table[]
+ * @since 13.0.0
+ */
+ public function getTables();
+
+ /**
+ * Gets all table names, prefixed with table prefix
+ *
+ * @return array
+ * @since 13.0.0
+ */
+ public function getTableNames();
+
+ /**
+ * Gets all table names
+ *
+ * @return array
+ * @since 13.0.0
+ */
+ public function getTableNamesWithoutPrefix();
+}
diff --git a/lib/public/Migration/BigIntMigration.php b/lib/public/Migration/BigIntMigration.php
index 9e6003714e5..41c48f2181a 100644
--- a/lib/public/Migration/BigIntMigration.php
+++ b/lib/public/Migration/BigIntMigration.php
@@ -23,8 +23,8 @@
namespace OCP\Migration;
-use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Type;
+use OCP\DB\ISchemaWrapper;
/**
* @since 13.0.0
@@ -40,13 +40,13 @@ abstract class BigIntMigration extends SimpleMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
- /** @var Schema $schema */
+ /** @var ISchemaWrapper $schema */
$schema = $schemaClosure();
$tables = $this->getColumnsByTable();
diff --git a/lib/public/Migration/IMigrationStep.php b/lib/public/Migration/IMigrationStep.php
index 11b92ecf0cf..e12d962683e 100644
--- a/lib/public/Migration/IMigrationStep.php
+++ b/lib/public/Migration/IMigrationStep.php
@@ -23,7 +23,7 @@
namespace OCP\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
/**
* @since 13.0.0
@@ -32,7 +32,7 @@ interface IMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
@@ -40,16 +40,16 @@ interface IMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options);
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
diff --git a/lib/public/Migration/SimpleMigrationStep.php b/lib/public/Migration/SimpleMigrationStep.php
index 58c68064484..da46c687644 100644
--- a/lib/public/Migration/SimpleMigrationStep.php
+++ b/lib/public/Migration/SimpleMigrationStep.php
@@ -23,7 +23,7 @@
namespace OCP\Migration;
-use Doctrine\DBAL\Schema\Schema;
+use OCP\DB\ISchemaWrapper;
/**
* @since 13.0.0
@@ -32,7 +32,7 @@ abstract class SimpleMigrationStep implements IMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
@@ -41,9 +41,9 @@ abstract class SimpleMigrationStep implements IMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
- * @return null|Schema
+ * @return null|ISchemaWrapper
* @since 13.0.0
*/
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
@@ -52,7 +52,7 @@ abstract class SimpleMigrationStep implements IMigrationStep {
/**
* @param IOutput $output
- * @param \Closure $schemaClosure The `\Closure` returns a `Schema`
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
* @param array $options
* @since 13.0.0
*/
diff --git a/tests/lib/DB/MigrationsTest.php b/tests/lib/DB/MigrationsTest.php
index 9c06fe4cec5..191164c7eed 100644
--- a/tests/lib/DB/MigrationsTest.php
+++ b/tests/lib/DB/MigrationsTest.php
@@ -16,8 +16,6 @@ use OC\DB\MigrationService;
use OC\DB\SchemaWrapper;
use OCP\IDBConnection;
use OCP\Migration\IMigrationStep;
-use OCP\Migration\ISchemaMigration;
-use OCP\Migration\ISqlMigration;
/**
* Class MigrationsTest