Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-05-24 11:37:33 +0300
committerRoeland Jago Douma <roeland@famdouma.nl>2018-05-28 10:04:59 +0300
commitdd5995a2f8ca1331ae0c466cc812d8b3baf010b2 (patch)
treee0178e1ce455afa6bdd33df7cc602620db75bc5a /core
parent043acfebab11e4fdfdda9f412543f3d08b30c33c (diff)
Emit event when running ./occ db:add-missing-indices
This allows apps to listen to this event in order to also update indecies there. Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'core')
-rw-r--r--core/Command/Db/AddMissingIndices.php21
-rw-r--r--core/register_command.php2
2 files changed, 15 insertions, 8 deletions
diff --git a/core/Command/Db/AddMissingIndices.php b/core/Command/Db/AddMissingIndices.php
index 314bed8ccb1..c80b0ba8b8e 100644
--- a/core/Command/Db/AddMissingIndices.php
+++ b/core/Command/Db/AddMissingIndices.php
@@ -27,6 +27,8 @@ use OCP\IDBConnection;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Symfony\Component\EventDispatcher\GenericEvent;
/**
* Class AddMissingIndices
@@ -41,12 +43,14 @@ class AddMissingIndices extends Command {
/** @var IDBConnection */
private $connection;
- /**
- * @param IDBConnection $connection
- */
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
+ /** @var EventDispatcherInterface */
+ private $dispatcher;
+
+ public function __construct(IDBConnection $connection, EventDispatcherInterface $dispatcher) {
parent::__construct();
+
+ $this->connection = $connection;
+ $this->dispatcher = $dispatcher;
}
protected function configure() {
@@ -58,6 +62,9 @@ class AddMissingIndices extends Command {
protected function execute(InputInterface $input, OutputInterface $output) {
$this->addShareTableIndicies($output);
+ // Dispatch event so apps can also update indexes if needed
+ $event = new GenericEvent($output);
+ $this->dispatcher->dispatch(IDBConnection::ADD_MISSING_INDEXES_EVENT, $event);
}
/**
@@ -73,8 +80,8 @@ class AddMissingIndices extends Command {
$schema = new SchemaWrapper($this->connection);
$updated = false;
- if ($schema->hasTable("share")) {
- $table = $schema->getTable("share");
+ if ($schema->hasTable('share')) {
+ $table = $schema->getTable('share');
if (!$table->hasIndex('share_with_index')) {
$output->writeln('<info>Adding additional index to the share table, this can take some time...</info>');
$table->addIndex(['share_with'], 'share_with_index');
diff --git a/core/register_command.php b/core/register_command.php
index 372d775dc14..eb5a06b1aab 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -90,7 +90,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
$application->add(new OC\Core\Command\Db\ConvertType(\OC::$server->getConfig(), new \OC\DB\ConnectionFactory(\OC::$server->getSystemConfig())));
$application->add(new OC\Core\Command\Db\ConvertMysqlToMB4(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection(), \OC::$server->getURLGenerator(), \OC::$server->getLogger()));
$application->add(new OC\Core\Command\Db\ConvertFilecacheBigInt(\OC::$server->getDatabaseConnection()));
- $application->add(new OC\Core\Command\Db\AddMissingIndices(\OC::$server->getDatabaseConnection()));
+ $application->add(new OC\Core\Command\Db\AddMissingIndices(\OC::$server->getDatabaseConnection(), \OC::$server->getEventDispatcher()));
$application->add(new OC\Core\Command\Db\Migrations\StatusCommand(\OC::$server->getDatabaseConnection()));
$application->add(new OC\Core\Command\Db\Migrations\MigrateCommand(\OC::$server->getDatabaseConnection()));
$application->add(new OC\Core\Command\Db\Migrations\GenerateCommand(\OC::$server->getDatabaseConnection()));