12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- declare(strict_types=1);
- /**
- * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
- namespace OCA\DAV\Migration;
- use Closure;
- use OCP\DB\ISchemaWrapper;
- use OCP\Migration\IOutput;
- use OCP\Migration\SimpleMigrationStep;
- class Version1016Date20201109085907 extends SimpleMigrationStep {
- /**
- * @param IOutput $output
- * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
- * @param array $options
- * @return null|ISchemaWrapper
- */
- public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
- /** @var ISchemaWrapper $schema */
- $schema = $schemaClosure();
- $result = $this->ensureColumnIsNullable($schema, 'calendar_reminders', 'is_recurring');
- return $result ? $schema : null;
- }
- protected function ensureColumnIsNullable(ISchemaWrapper $schema, string $tableName, string $columnName): bool {
- $table = $schema->getTable($tableName);
- $column = $table->getColumn($columnName);
- if ($column->getNotnull()) {
- $column->setNotnull(false);
- return true;
- }
- return false;
- }
- }
|