From 6f7e5de6ee09e63f340eccf5c1ecd2704f55e899 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Wed, 1 Sep 2021 10:59:54 +0200
Subject: [PATCH] pretend that old migrations (< 259) are on branch "1"

---
 db/migrations/1.259_migrations_reloaded.php | 3 +++
 lib/migrations/DBSchemaVersion.php          | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/db/migrations/1.259_migrations_reloaded.php b/db/migrations/1.259_migrations_reloaded.php
index b73de5c3279..1ffb583d4c7 100644
--- a/db/migrations/1.259_migrations_reloaded.php
+++ b/db/migrations/1.259_migrations_reloaded.php
@@ -17,6 +17,9 @@ class MigrationsReloaded extends Migration
                 DROP PRIMARY KEY,
                 ADD PRIMARY KEY (domain, branch)";
         $db->exec($sql);
+
+        $sql = "UPDATE schema_version SET branch = '1' WHERE domain = 'studip'";
+        $db->exec($sql);
     }
 
     public function down()
diff --git a/lib/migrations/DBSchemaVersion.php b/lib/migrations/DBSchemaVersion.php
index 61894be0787..4c723dc1800 100644
--- a/lib/migrations/DBSchemaVersion.php
+++ b/lib/migrations/DBSchemaVersion.php
@@ -157,7 +157,8 @@ class DBSchemaVersion implements SchemaVersion
     }
 
     /**
-     * Validate correct structure of schema_version table.
+     * Validate correct structure of schema_version table. This
+     * will upgrade the schema from 4.4 style to 5.1 if necessary.
      */
     private function validateSchemaVersion()
     {
@@ -170,10 +171,12 @@ class DBSchemaVersion implements SchemaVersion
                 20201002, 20201103, 202011031, 20210317
             ];
 
+            // drop backported migrations
             $query = "DELETE FROM schema_versions
                       WHERE domain = 'studip' AND version in (?)";
             $db->execute($query, [$backported_migrations]);
 
+            // drop migrations with irregular numbers
             $query = "DELETE FROM schema_versions
                       WHERE domain = 'studip' AND LENGTH(version) > 8";
             $db->exec($query);
-- 
GitLab