Polyfill NC21 DB Types for NC20

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
Marcel Klehr 2021-01-23 15:47:06 +01:00
parent 8b63e91173
commit 23a0a1e998
6 changed files with 116 additions and 8 deletions

View File

@ -7,7 +7,6 @@
namespace OCA\Bookmarks\Db;
use Doctrine\DBAL\Types\Type;
use OCA\Bookmarks\Events\BeforeDeleteEvent;
use OCA\Bookmarks\Events\MoveEvent;
use OCA\Bookmarks\Events\UpdateEvent;

110
lib/Db/Types.php Normal file
View File

@ -0,0 +1,110 @@
<?php
/*
* @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>
*
* @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>
*
* @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 OCA\Bookmarks\Db;
/**
* Database types supported by Nextcloud's DBs
*
* Use these constants instead of \Doctrine\DBAL\Types\Type or \Doctrine\DBAL\Types\Types
*
* FIXME: Remove this as soon as min nc version is 21
*/
final class Types {
/**
* @var string
* @since 21.0.0
*/
public const BIGINT = 'bigint';
/**
* @var string
* @since 21.0.0
*/
public const BINARY = 'binary';
/**
* @var string
* @since 21.0.0
*/
public const BLOB = 'blob';
/**
* @var string
* @since 21.0.0
*/
public const BOOLEAN = 'boolean';
/**
* @var string
* @since 21.0.0
*/
public const DATE = 'date';
/**
* @var string
* @since 21.0.0
*/
public const DATETIME = 'datetime';
/**
* @var string
* @since 21.0.0
*/
public const DECIMAL = 'decimal';
/**
* @var string
* @since 21.0.0
*/
public const FLOAT = 'float';
/**
* @var string
* @since 21.0.0
*/
public const INTEGER = 'integer';
/**
* @var string
* @since 21.0.0
*/
public const SMALLINT = 'smallint';
/**
* @var string
* @since 21.0.0
*/
public const STRING = 'string';
/**
* @var string
* @since 21.0.0
*/
public const TEXT = 'text';
/**
* @var string
* @since 21.0.0
*/
public const TIME = 'time';
}

View File

@ -9,7 +9,7 @@ namespace OCA\Bookmarks\Migration;
use Closure;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\Type;
use OCA\Bookmarks\Db\Types;
use OCP\DB\ISchemaWrapper;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
@ -49,7 +49,7 @@ class Version003000009Date20200505094721 extends SimpleMigrationStep {
$schema = $schemaClosure();
$table = $schema->getTable('bookmarks_tree');
$table->changeColumn('index', [
'type' => Type::getType('bigint'),
'type' => Types::BIGINT,
'unsigned' => true,
]);
return $schema;

View File

@ -9,7 +9,7 @@ namespace OCA\Bookmarks\Migration;
use Closure;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\Type;
use OCA\Bookmarks\Db\Types;
use OCP\DB\ISchemaWrapper;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
@ -49,7 +49,7 @@ class Version003004000Date20200807124721 extends SimpleMigrationStep {
$schema = $schemaClosure();
if ($schema->hasTable('bookmarks')) {
$table = $schema->getTable('bookmarks');
$table->addColumn('available', Type::BOOLEAN, [
$table->addColumn('available', Types::BOOLEAN, [
'notnull' => true,
'default' => true,
]);

View File

@ -9,7 +9,7 @@ namespace OCA\Bookmarks\Migration;
use Closure;
use Doctrine\DBAL\Schema\SchemaException;
use Doctrine\DBAL\Types\Type;
use OCA\Bookmarks\Db\Types;
use OCP\DB\ISchemaWrapper;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
@ -49,7 +49,7 @@ class Version003004000Date20200817124721 extends SimpleMigrationStep {
$schema = $schemaClosure();
if ($schema->hasTable('bookmarks')) {
$table = $schema->getTable('bookmarks');
$table->addColumn('archived_file', Type::BIGINT, [
$table->addColumn('archived_file', Types::BIGINT, [
'notnull' => false,
]);
}

View File

@ -29,7 +29,6 @@
<UndefinedClass>
<errorLevel type="suppress">
<referencedClass name="OC" />
<referencedClass name="Doctrine\DBAL\Types\Type" />
</errorLevel>
</UndefinedClass>
<UndefinedDocblockClass>