1<?php 2 3declare(strict_types=1); 4/** 5 * @copyright Copyright (c) 2020, Joas Schilling <coding@schilljs.com> 6 * 7 * @author Joas Schilling <coding@schilljs.com> 8 * 9 * @license GNU AGPL version 3 or any later version 10 * 11 * This program is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Affero General Public License as 13 * published by the Free Software Foundation, either version 3 of the 14 * License, or (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Affero General Public License for more details. 20 * 21 * You should have received a copy of the GNU Affero General Public License 22 * along with this program. If not, see <http://www.gnu.org/licenses/>. 23 * 24 */ 25 26namespace OCA\Talk\Migration; 27 28use Closure; 29use OCP\DB\ISchemaWrapper; 30use OCP\Migration\IOutput; 31use OCP\Migration\SimpleMigrationStep; 32 33class Version8000Date20200331144101 extends SimpleMigrationStep { 34 public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ISchemaWrapper { 35 /** @var ISchemaWrapper $schema */ 36 $schema = $schemaClosure(); 37 38 $table = $schema->getTable('talk_participants'); 39 if (!$table->hasIndex('tp_ident')) { 40 $table->addUniqueIndex(['room_id', 'user_id', 'session_id'], 'tp_ident'); 41 } 42 if (!$table->hasIndex('tp_room')) { 43 $table->addIndex(['room_id'], 'tp_room'); 44 } 45 if (!$table->hasIndex('tp_last_ping')) { 46 $table->addIndex(['last_ping'], 'tp_last_ping'); 47 } 48 if (!$table->hasIndex('tp_in_call')) { 49 $table->addIndex(['in_call'], 'tp_in_call'); 50 } 51 52 return $schema; 53 } 54} 55