From 83dace3cc7bb3819ea3703aaa3dead75be6f72fd Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 31 Mar 2023 16:38:33 +0000
Subject: [PATCH] convert description fields to varchar via migration, fixes
 #2497

Closes #2497

Merge request studip/studip!1684
---
 ...convert_description_columns_to_varchar.php | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 db/migrations/5.1.45_convert_description_columns_to_varchar.php

diff --git a/db/migrations/5.1.45_convert_description_columns_to_varchar.php b/db/migrations/5.1.45_convert_description_columns_to_varchar.php
new file mode 100644
index 00000000000..6c7d9a06680
--- /dev/null
+++ b/db/migrations/5.1.45_convert_description_columns_to_varchar.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @see https://gitlab.studip.de/studip/studip/-/issues/2497
+ */
+final class ConvertDescriptionColumnsToVarchar extends Migration
+{
+    public function description()
+    {
+        return 'Convert the `description` columns in tables `termine`, `ex_termine`and `semester_data` to VARCHAR.';
+
+    }
+
+    protected function up()
+    {
+        $query = "ALTER TABLE `termine`
+                  CHANGE COLUMN `description` `description` VARCHAR(255) DEFAULT NULL";
+        DBManager::get()->exec($query);
+
+        $query = "ALTER TABLE `ex_termine`
+                  CHANGE COLUMN `description` `description` VARCHAR(255) DEFAULT NULL";
+        DBManager::get()->exec($query);
+
+        $query = "ALTER TABLE `semester_data`
+                  CHANGE COLUMN `description` `description` VARCHAR(255) NOT NULL DEFAULT ''";
+        DBManager::get()->exec($query);
+    }
+
+    protected function down()
+    {
+        $query = "ALTER TABLE `semester_data`
+                  CHANGE COLUMN `description` `description` TEXT NOT NULL";
+        DBManager::get()->exec($query);
+
+        $query = "ALTER TABLE `ex_termine`
+                  CHANGE COLUMN `description` `description` TEXT DEFAULT NULL";
+        DBManager::get()->exec($query);
+
+        $query = "ALTER TABLE `termine`
+                  CHANGE COLUMN `description` `description` TEXT DEFAULT NULL";
+        DBManager::get()->exec($query);
+    }
+}
-- 
GitLab