summaryrefslogtreecommitdiffstats
path: root/lib/private/Repair
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2022-03-31 13:43:09 +0200
committerGitHub <noreply@github.com>2022-03-31 13:43:09 +0200
commiteea05b05edb229a5834df43983ab6bd97de63e8e (patch)
tree948bee835b54bcb5428b140a3b8c46302587afa5 /lib/private/Repair
parent87e079d2ad46cd68cc6693467aa0b855719f7585 (diff)
parentb0b88059b8458bf12528d4fd86451613a3bb5759 (diff)
downloadnextcloud-server-eea05b05edb229a5834df43983ab6bd97de63e8e.tar.gz
nextcloud-server-eea05b05edb229a5834df43983ab6bd97de63e8e.zip
Merge pull request #31737 from nextcloud/fix/oc_oauth2_migration
Wrap oauth2 migrations inside conditions
Diffstat (limited to 'lib/private/Repair')
-rw-r--r--lib/private/Repair/Owncloud/MigrateOauthTables.php37
1 files changed, 24 insertions, 13 deletions
diff --git a/lib/private/Repair/Owncloud/MigrateOauthTables.php b/lib/private/Repair/Owncloud/MigrateOauthTables.php
index 274c2ee28db..4011a043f20 100644
--- a/lib/private/Repair/Owncloud/MigrateOauthTables.php
+++ b/lib/private/Repair/Owncloud/MigrateOauthTables.php
@@ -55,23 +55,34 @@ class MigrateOauthTables implements IRepairStep {
$output->info("Update the oauth2_access_tokens table schema.");
$schema = new SchemaWrapper($this->db);
$table = $schema->getTable('oauth2_access_tokens');
- $table->addColumn('hashed_code', 'string', [
- 'notnull' => true,
- 'length' => 128,
- ]);
- $table->addColumn('encrypted_token', 'string', [
- 'notnull' => true,
- 'length' => 786,
- ]);
- $table->addUniqueIndex(['hashed_code'], 'oauth2_access_hash_idx');
- $table->addIndex(['client_id'], 'oauth2_access_client_id_idx');
-
+ if (!$table->hasColumn('hashed_code')) {
+ $table->addColumn('hashed_code', 'string', [
+ 'notnull' => true,
+ 'length' => 128,
+ ]);
+ }
+ if (!$table->hasColumn('encrypted_token')) {
+ $table->addColumn('encrypted_token', 'string', [
+ 'notnull' => true,
+ 'length' => 786,
+ ]);
+ }
+ if (!$table->hasIndex('oauth2_access_hash_idx')) {
+ $table->addUniqueIndex(['hashed_code'], 'oauth2_access_hash_idx');
+ }
+ if (!$table->hasIndex('oauth2_access_client_id_idx')) {
+ $table->addIndex(['client_id'], 'oauth2_access_client_id_idx');
+ }
$output->info("Update the oauth2_clients table schema.");
$schema = new SchemaWrapper($this->db);
$table = $schema->getTable('oauth2_clients');
- $table->getColumn('name')->setLength(64);
- $table->dropColumn('allow_subdomains');
+ if ($table->getColumn('name')->getLength() !== 64) {
+ $table->getColumn('name')->setLength(64);
+ }
+ if ($table->hasColumn('allow_subdomains')) {
+ $table->dropColumn('allow_subdomains');
+ }
if (!$schema->getTable('oauth2_clients')->hasColumn('client_identifier')) {
$table->addColumn('client_identifier', 'string', [