aboutsummaryrefslogtreecommitdiffstats
path: root/core/Migrations/Version27000Date20230309104325.php
blob: a15f9228211baf1f3f3683987a998d9352db09f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

namespace OC\Core\Migrations;

use Closure;
use OCP\DB\ISchemaWrapper;
use OCP\DB\Types;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Migration\SimpleMigrationStep;

/**
 * Migrate oc_file_metadata.metadata as JSON type to oc_file_metadata.value a STRING type
 * @see \OC\Metadata\FileMetadata
 */
class Version27000Date20230309104325 extends SimpleMigrationStep {
	public function __construct(
		private IDBConnection $connection,
	) {
	}

	/**
	 * @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();
		// $metadataTable = $schema->getTable('file_metadata');

		// if ($metadataTable->hasColumn('value')) {
		// 	return null;
		// }

		// $metadataTable->addColumn('value', Types::TEXT, [
		// 	'notnull' => false,
		// 	'default' => '',
		// ]);
		// return $schema;
		return null;
	}


	/**
	 * @param IOutput $output
	 * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
	 * @param array $options
	 * @return void
	 */
	public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options) {
		/** @var ISchemaWrapper $schema */
		// $schema = $schemaClosure();
		// $metadataTable = $schema->getTable('file_metadata');

		// if (!$metadataTable->hasColumn('metadata')) {
		// 	return;
		// }

		// $this->connection
		// 	->getQueryBuilder()
		// 	->update('file_metadata')
		// 	->set('value', 'metadata')
		// 	->executeStatement();
	}
}