[v11.0.x] Add FolderUID for library elements (#86280)

Add FolderUID for library elements (#83819)

(cherry picked from commit 5c4a2de59b)

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
This commit is contained in:
grafana-delivery-bot[bot]
2024-04-17 20:04:37 +02:00
committed by GitHub
co-authored by idafurjes
parent c968ff62a1
commit df2fee63a5
17 changed files with 229 additions and 157 deletions
@@ -61,4 +61,26 @@ func addLibraryElementsMigrations(mg *migrator.Migrator) {
mg.AddMigration("alter library_element model to mediumtext", migrator.NewRawSQLMigration("").
Mysql("ALTER TABLE library_element MODIFY model MEDIUMTEXT NOT NULL;"))
q := `UPDATE library_element
SET folder_uid = dashboard.uid
FROM dashboard
WHERE library_element.folder_id = dashboard.id AND library_element.org_id = dashboard.org_id`
if mg.Dialect.DriverName() == migrator.MySQL {
q = `UPDATE library_element
SET folder_uid = (
SELECT dashboard.uid
FROM dashboard
WHERE library_element.folder_id = dashboard.id AND library_element.org_id = dashboard.org_id
)`
}
mg.AddMigration("add library_element folder uid", migrator.NewAddColumnMigration(libraryElementsV1, &migrator.Column{
Name: "folder_uid", Type: migrator.DB_NVarchar, Length: 40, Nullable: true,
}))
mg.AddMigration("populate library_element folder_uid", migrator.NewRawSQLMigration(q))
mg.AddMigration("add index library_element org_id-folder_uid-name-kind", migrator.NewAddIndexMigration(libraryElementsV1, &migrator.Index{Cols: []string{"org_id", "folder_uid", "name", "kind"}, Type: migrator.UniqueIndex}))
}