mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #28541 from nextcloud/path-prefix-index2
add a prefix index to filecache.path, attempt 2
This commit is contained in:
commit
5155f2b0c5
5 changed files with 44 additions and 1 deletions
|
|
@ -31,6 +31,7 @@
|
|||
*/
|
||||
namespace OC\Core;
|
||||
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL94Platform;
|
||||
use OC\Authentication\Events\RemoteWipeFinished;
|
||||
use OC\Authentication\Events\RemoteWipeStarted;
|
||||
use OC\Authentication\Listeners\RemoteWipeActivityListener;
|
||||
|
|
@ -118,6 +119,10 @@ class Application extends App {
|
|||
if (!$table->hasIndex('fs_id_storage_size')) {
|
||||
$subject->addHintForMissingSubject($table->getName(), 'fs_id_storage_size');
|
||||
}
|
||||
|
||||
if (!$table->hasIndex('fs_storage_path_prefix') && !$schema->getDatabasePlatform() instanceof PostgreSQL94Platform) {
|
||||
$subject->addHintForMissingSubject($table->getName(), 'fs_storage_path_prefix');
|
||||
}
|
||||
}
|
||||
|
||||
if ($schema->hasTable('twofactor_providers')) {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace OC\Core\Command\Db;
|
||||
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL94Platform;
|
||||
use OC\DB\Connection;
|
||||
use OC\DB\SchemaWrapper;
|
||||
use OCP\IDBConnection;
|
||||
|
|
@ -151,6 +152,13 @@ class AddMissingIndices extends Command {
|
|||
$updated = true;
|
||||
$output->writeln('<info>Filecache table updated successfully.</info>');
|
||||
}
|
||||
if (!$table->hasIndex('fs_storage_path_prefix') && !$schema->getDatabasePlatform() instanceof PostgreSQL94Platform) {
|
||||
$output->writeln('<info>Adding additional path index to the filecache table, this can take some time...</info>');
|
||||
$table->addIndex(['storage', 'path'], 'fs_storage_path_prefix', [], ['lengths' => [null, 64]]);
|
||||
$this->connection->migrateToSchema($schema->getWrappedSchema());
|
||||
$updated = true;
|
||||
$output->writeln('<info>Filecache table updated successfully.</info>');
|
||||
}
|
||||
}
|
||||
|
||||
$output->writeln('<info>Check indices of the twofactor_providers table.</info>');
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
*/
|
||||
namespace OC\Core\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL94Platform;
|
||||
use OCP\DB\Types;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\IDBConnection;
|
||||
|
|
@ -264,6 +265,9 @@ class Version13000Date20170718121200 extends SimpleMigrationStep {
|
|||
$table->addIndex(['fileid', 'storage', 'size'], 'fs_id_storage_size');
|
||||
$table->addIndex(['mtime'], 'fs_mtime');
|
||||
$table->addIndex(['size'], 'fs_size');
|
||||
if (!$schema->getDatabasePlatform() instanceof PostgreSQL94Platform) {
|
||||
$table->addIndex(['storage', 'path'], 'fs_storage_path_prefix', [], ['lengths' => [null, 64]]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$schema->hasTable('group_user')) {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@
|
|||
*/
|
||||
namespace OC\DB;
|
||||
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
|
||||
|
|
@ -129,4 +131,15 @@ class SchemaWrapper implements ISchemaWrapper {
|
|||
public function getTables() {
|
||||
return $this->schema->getTables();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the DatabasePlatform for the database.
|
||||
*
|
||||
* @return AbstractPlatform
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getDatabasePlatform() {
|
||||
return $this->connection->getDatabasePlatform();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@
|
|||
*/
|
||||
namespace OCP\DB;
|
||||
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
|
||||
/**
|
||||
* Interface ISchemaWrapper
|
||||
*
|
||||
|
|
@ -81,7 +84,7 @@ interface ISchemaWrapper {
|
|||
* @since 13.0.0
|
||||
*/
|
||||
public function getTableNames();
|
||||
|
||||
|
||||
/**
|
||||
* Gets all table names
|
||||
*
|
||||
|
|
@ -89,4 +92,14 @@ interface ISchemaWrapper {
|
|||
* @since 13.0.0
|
||||
*/
|
||||
public function getTableNamesWithoutPrefix();
|
||||
|
||||
/**
|
||||
* Gets the DatabasePlatform for the database.
|
||||
*
|
||||
* @return AbstractPlatform
|
||||
*
|
||||
* @throws Exception
|
||||
* @since 23.0.0
|
||||
*/
|
||||
public function getDatabasePlatform();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue