aboutsummaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorMoritz Strohm <strohm@data-quest.de>2025-07-04 11:26:26 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2025-07-04 11:26:26 +0000
commitd98e8f811ee969fc94f922a70ad270ff02d057fc (patch)
tree48de96c46855f4dd2b440e7e3c07bc6d9fa41641 /db
parent414e0080d467297bbc00ca3ba12cce6112a7367d (diff)
course/lti/process_select_link: redirect on error with deployments, fixes #5488
Closes #5488 Merge request studip/studip!4183
Diffstat (limited to 'db')
-rw-r--r--db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php79
1 files changed, 79 insertions, 0 deletions
diff --git a/db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php b/db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php
new file mode 100644
index 0000000..9385908
--- /dev/null
+++ b/db/migrations/6.0.51_add_columns_to_lti_resource_links_table.php
@@ -0,0 +1,79 @@
+<?php
+
+
+class AddColumnsToLtiResourceLinksTable extends Migration
+{
+ public function description()
+ {
+ return 'Add missing columns to the lti_resource_links table.';
+ }
+
+ protected function up()
+ {
+ $db = DBManager::get();
+
+ //Clone the launch_url and options column from lti_deployments:
+ $db->exec(
+ "ALTER TABLE `lti_resource_links`
+ ADD COLUMN `title` VARCHAR(255) NOT NULL DEFAULT '',
+ ADD COLUMN `description` TEXT NULL,
+ ADD COLUMN `launch_url` VARCHAR(255) NOT NULL DEFAULT '',
+ ADD COLUMN `options` TEXT"
+ );
+
+ $db->exec(
+ "UPDATE `lti_resource_links`
+ JOIN `lti_deployments`
+ ON `lti_deployments`.`id` = `lti_resource_links`.`deployment_id`
+ SET
+ `lti_resource_links`.`title` = `lti_deployments`.`title`,
+ `lti_resource_links`.`description` = `lti_deployments`.`description`,
+ `lti_resource_links`.`launch_url` = `lti_deployments`.`launch_url`,
+ `lti_resource_links`.`options` = `lti_deployments`.`options`"
+ );
+
+ $db->exec(
+ "ALTER TABLE `lti_deployments`
+ DROP COLUMN `title`,
+ DROP COLUMN `description`,
+ DROP COLUMN `launch_url`,
+ DROP COLUMN `options`,
+ ADD COLUMN `purpose` ENUM ('general', 'deep_linking') NOT NULL DEFAULT 'general',
+ ADD COLUMN `name` VARCHAR(255) NOT NULL DEFAULT ''"
+ );
+ }
+
+ protected function down()
+ {
+ $db = DBManager::get();
+
+ $db->exec(
+ "ALTER TABLE `lti_deployments`
+ DROP COLUMN `name`,
+ DROP COLUMN `purpose`,
+ ADD COLUMN `title` VARCHAR(255) NOT NULL DEFAULT '',
+ ADD COLUMN `description` TEXT NULL,
+ ADD COLUMN `launch_url` VARCHAR(255) NOT NULL DEFAULT '',
+ ADD COLUMN `options` TEXT"
+ );
+
+ $db->exec(
+ "UPDATE `lti_deployments`
+ JOIN `lti_resource_links`
+ ON `lti_deployments`.`id` = `lti_resource_links`.`deployment_id`
+ SET
+ `lti_deployments`.`title` = `lti_resource_links`.`title`,
+ `lti_deployments`.`description` = `lti_resource_links`.`description`,
+ `lti_deployments`.`launch_url` = `lti_resource_links`.`launch_url`,
+ `lti_deployments`.`options` = `lti_resource_links`.`options`"
+ );
+
+ $db->exec(
+ "ALTER TABLE `lti_resource_links`
+ DROP COLUMN `title`,
+ DROP COLUMN `description`,
+ DROP COLUMN launch_url,
+ DROP COLUMN `options`"
+ );
+ }
+}