summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2018-12-04 18:34:23 +0100
committerBackportbot <backportbot-noreply@rullzer.com>2018-12-05 17:53:42 +0000
commitbdeaff0790eb8aae3e2942b1af42e4ccde83e9ba (patch)
tree5fc6409072eae3e5de438d1f9d38661ae1caa8d0 /core
parent5322de3fecbe181a665d2216953724e8696fecbc (diff)
downloadnextcloud-server-bdeaff0790eb8aae3e2942b1af42e4ccde83e9ba.tar.gz
nextcloud-server-bdeaff0790eb8aae3e2942b1af42e4ccde83e9ba.zip
Fix bigint conversion on SQLite
* on SQLite primary keys can't be bigint - see https://stackoverflow.com/a/18835967/520507 Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'core')
-rw-r--r--core/Command/Db/ConvertFilecacheBigInt.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/core/Command/Db/ConvertFilecacheBigInt.php b/core/Command/Db/ConvertFilecacheBigInt.php
index eab64660ac4..a1e3ba69f98 100644
--- a/core/Command/Db/ConvertFilecacheBigInt.php
+++ b/core/Command/Db/ConvertFilecacheBigInt.php
@@ -23,6 +23,7 @@
namespace OC\Core\Command\Db;
+use Doctrine\DBAL\Platforms\SqlitePlatform;
use Doctrine\DBAL\Types\Type;
use OC\DB\SchemaWrapper;
use OCP\IDBConnection;
@@ -63,6 +64,7 @@ class ConvertFilecacheBigInt extends Command {
protected function execute(InputInterface $input, OutputInterface $output) {
$schema = new SchemaWrapper($this->connection);
+ $isSqlite = $this->connection->getDatabasePlatform() instanceof SqlitePlatform;
$updates = [];
$tables = $this->getColumnsByTable();
@@ -75,7 +77,9 @@ class ConvertFilecacheBigInt extends Command {
foreach ($columns as $columnName) {
$column = $table->getColumn($columnName);
- if ($column->getType()->getName() !== Type::BIGINT) {
+ $isAutoIncrement = $column->getAutoincrement();
+ $isAutoIncrementOnSqlite = $isSqlite && $isAutoIncrement;
+ if ($column->getType()->getName() !== Type::BIGINT && !$isAutoIncrementOnSqlite) {
$column->setType(Type::getType(Type::BIGINT));
$column->setOptions(['length' => 20]);