fix: make org_id not nullable and set default value (#95610)

This commit is contained in:
Syerikjan Kh 2024-10-31 09:53:33 -04:00 committed by GitHub
parent 0261e8fe80
commit 35697381d2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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");
`),
)
}