From 35697381d29e8c655ee81d3f76956291feada9d7 Mon Sep 17 00:00:00 2001 From: Syerikjan Kh Date: Thu, 31 Oct 2024 09:53:33 -0400 Subject: [PATCH] fix: make org_id not nullable and set default value (#95610) --- .../sqlstore/migrations/plugin_setting.go | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/pkg/services/sqlstore/migrations/plugin_setting.go b/pkg/services/sqlstore/migrations/plugin_setting.go index f1eb3723871..e6f108a003d 100644 --- a/pkg/services/sqlstore/migrations/plugin_setting.go +++ b/pkg/services/sqlstore/migrations/plugin_setting.go @@ -37,4 +37,44 @@ 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"); + `), + ) }