From 3f5770a78ba9ca4b8fec83fdefa8c85b3eba754a Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 4 Nov 2024 14:16:40 +0100 Subject: [PATCH] fix(owncloud): Fix ownCloud migration with oauth2 app Signed-off-by: Joas Schilling --- lib/private/Repair/Owncloud/MigrateOauthTables.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/private/Repair/Owncloud/MigrateOauthTables.php b/lib/private/Repair/Owncloud/MigrateOauthTables.php index ae2b46e19496c..8282db6bd0b2c 100644 --- a/lib/private/Repair/Owncloud/MigrateOauthTables.php +++ b/lib/private/Repair/Owncloud/MigrateOauthTables.php @@ -51,8 +51,7 @@ public function run(IOutput $output) { return; } - $output->info("Update the oauth2_access_tokens table schema."); - $schema = new SchemaWrapper($this->db); + $output->info('Update the oauth2_access_tokens table schema.'); $table = $schema->getTable('oauth2_access_tokens'); if (!$table->hasColumn('hashed_code')) { $table->addColumn('hashed_code', 'string', [ @@ -73,8 +72,7 @@ public function run(IOutput $output) { $table->addIndex(['client_id'], 'oauth2_access_client_id_idx'); } - $output->info("Update the oauth2_clients table schema."); - $schema = new SchemaWrapper($this->db); + $output->info('Update the oauth2_clients table schema.'); $table = $schema->getTable('oauth2_clients'); if ($table->getColumn('name')->getLength() !== 64) { // shorten existing values before resizing the column @@ -118,7 +116,8 @@ public function run(IOutput $output) { $this->db->migrateToSchema($schema->getWrappedSchema()); - + // Regenerate schema after migrating to it + $schema = new SchemaWrapper($this->db); if ($schema->getTable('oauth2_clients')->hasColumn('identifier')) { $output->info("Move identifier column's data to the new client_identifier column."); // 1. Fetch all [id, identifier] couple. @@ -137,8 +136,7 @@ public function run(IOutput $output) { ->executeStatement(); } - $output->info("Drop the identifier column."); - $schema = new SchemaWrapper($this->db); + $output->info('Drop the identifier column.'); $table = $schema->getTable('oauth2_clients'); $table->dropColumn('identifier'); $this->db->migrateToSchema($schema->getWrappedSchema());