]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(owncloud): Fix ownCloud migration with oauth2 app bugfix/noid/fix-oauth2-owncloud-migration 49075/head
authorJoas Schilling <coding@schilljs.com>
Mon, 4 Nov 2024 13:16:40 +0000 (14:16 +0100)
committerJoas Schilling <coding@schilljs.com>
Mon, 4 Nov 2024 13:16:40 +0000 (14:16 +0100)
Signed-off-by: Joas Schilling <coding@schilljs.com>
lib/private/Repair/Owncloud/MigrateOauthTables.php

index 94ec0eba3e679247011f2163f3a4c655cbda7561..02f89db6c249687d0b61e22a7725faa44561be1b 100644 (file)
@@ -37,7 +37,6 @@ class MigrateOauthTables implements IRepairStep {
                }
 
                $output->info('Update the oauth2_access_tokens table schema.');
-               $schema = new SchemaWrapper($this->db);
                $table = $schema->getTable('oauth2_access_tokens');
                if (!$table->hasColumn('hashed_code')) {
                        $table->addColumn('hashed_code', 'string', [
@@ -59,7 +58,6 @@ class MigrateOauthTables implements IRepairStep {
                }
 
                $output->info('Update the oauth2_clients table schema.');
-               $schema = new SchemaWrapper($this->db);
                $table = $schema->getTable('oauth2_clients');
                if ($table->getColumn('name')->getLength() !== 64) {
                        // shorten existing values before resizing the column
@@ -103,7 +101,8 @@ class MigrateOauthTables implements IRepairStep {
 
                $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.
@@ -123,7 +122,6 @@ class MigrateOauthTables implements IRepairStep {
                        }
 
                        $output->info('Drop the identifier column.');
-                       $schema = new SchemaWrapper($this->db);
                        $table = $schema->getTable('oauth2_clients');
                        $table->dropColumn('identifier');
                        $this->db->migrateToSchema($schema->getWrappedSchema());