From 261b4a55645e54ec66c59e5ff9cacd1c3f589208 Mon Sep 17 00:00:00 2001 From: Syerikjan Kh Date: Tue, 29 Oct 2024 13:21:48 -0400 Subject: [PATCH] fix: make org_id not nullable and provide default value (#95556) --- .../sqlstore/migrations/plugin_setting.go | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/pkg/services/sqlstore/migrations/plugin_setting.go b/pkg/services/sqlstore/migrations/plugin_setting.go index f1eb3723871..d3aa1fc3c25 100644 --- a/pkg/services/sqlstore/migrations/plugin_setting.go +++ b/pkg/services/sqlstore/migrations/plugin_setting.go @@ -37,4 +37,47 @@ func addAppSettingsMigration(mg *Migrator) { {Name: "secure_json_data", Type: DB_Text, Nullable: true}, {Name: "plugin_version", Type: DB_NVarchar, Nullable: true, Length: 50}, })) + + // set org_id default value to 1 and not null + mg.AddMigration("update NULL org_id to 1", NewRawSQLMigration("UPDATE plugin_setting SET org_id=1 where org_id IS NULL;")) + + mg.AddMigration("make org_id NOT NULL and DEFAULT VALUE 1", NewRawSQLMigration(""). + Mysql("ALTER TABLE plugin_setting MODIFY COLUMN org_id BIGINT NOT NULL DEFAULT 1;"). + Postgres(` + ALTER TABLE plugin_setting + ALTER COLUMN org_id SET NOT NULL, + ALTER COLUMN org_id SET DEFAULT 1; + `). + SQLite(` + CREATE TABLE "plugin_setting_new" ( + "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + "org_id" INTEGER NOT NULL DEFAULT 1, + "plugin_id" TEXT NOT NULL, + "enabled" INTEGER NOT NULL, + "pinned" INTEGER NOT NULL, + "json_data" TEXT NULL, + "secure_json_data" TEXT NULL, + "created" DATETIME NOT NULL, + "updated" DATETIME NOT NULL, + "plugin_version" TEXT NULL); + + INSERT INTO "plugin_setting_new" SELECT + "id", + COALESCE("org_id", 1), + "plugin_id", + "enabled", + "pinned", + "json_data", + "secure_json_data", + "created", + "updated", + "plugin_version" + FROM "plugin_setting"; + + DROP TABLE "plugin_setting"; + ALTER TABLE "plugin_setting_new" RENAME TO "plugin_setting"; + + CREATE UNIQUE INDEX "UQE_plugin_setting_org_id_plugin_id" ON "plugin_setting" ("org_id","plugin_id"); + `), + ) }