fix: handle dashboards without version entries in unified storage migration (#108139)
* fix: handle dashboards without version entries in migration Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com> * fix: adds AllowFallback flag to enable COALESCE logic explicitly during migrations Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com> * fix: update dependencies Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com> * fix: maintain original behavior when not using AllowFallback option Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com> --------- Signed-off-by: Bruno Abrantes <bruno@brunoabrantes.com>
This commit is contained in:
Vendored
+2
-2
@@ -12,9 +12,9 @@ SELECT
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
dashboard_version.created,
|
||||
dashboard_version.created as updated,
|
||||
updated_user.uid as updated_by,
|
||||
updated_user.id as created_by_id,
|
||||
dashboard_version.created_by as updated_by_id,
|
||||
dashboard_version.version,
|
||||
dashboard_version.message,
|
||||
dashboard_version.data,
|
||||
|
||||
Vendored
+9
-9
@@ -12,23 +12,23 @@ SELECT
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
dashboard_version.created,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) as updated,
|
||||
updated_user.uid as updated_by,
|
||||
updated_user.id as created_by_id,
|
||||
dashboard_version.version,
|
||||
dashboard_version.message,
|
||||
dashboard_version.data,
|
||||
dashboard_version.api_version
|
||||
COALESCE(dashboard_version.created_by, dashboard.updated_by) as updated_by_id,
|
||||
COALESCE(dashboard_version.version, dashboard.version) as version,
|
||||
COALESCE(dashboard_version.message, '') as message,
|
||||
COALESCE(dashboard_version.data, dashboard.data) as data,
|
||||
COALESCE(dashboard_version.api_version, dashboard.api_version) as api_version
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_version` as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON dashboard_version.created_by = updated_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON COALESCE(dashboard_version.created_by, dashboard.updated_by) = updated_user.id
|
||||
WHERE dashboard.is_folder = FALSE
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
AND dashboard_version.version = 3
|
||||
ORDER BY
|
||||
dashboard_version.created DESC,
|
||||
dashboard_version.version DESC,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) DESC,
|
||||
COALESCE(dashboard_version.version, dashboard.version) DESC,
|
||||
dashboard.uid ASC
|
||||
|
||||
Vendored
Executable
+32
@@ -0,0 +1,32 @@
|
||||
SELECT
|
||||
dashboard.org_id,
|
||||
dashboard.id,
|
||||
dashboard.uid,
|
||||
dashboard.folder_uid,
|
||||
dashboard.deleted,
|
||||
plugin_id,
|
||||
provisioning.name as repo_name,
|
||||
provisioning.external_id as repo_path,
|
||||
provisioning.check_sum as repo_hash,
|
||||
provisioning.updated as repo_ts,
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) as updated,
|
||||
updated_user.uid as updated_by,
|
||||
COALESCE(dashboard_version.created_by, dashboard.updated_by) as updated_by_id,
|
||||
COALESCE(dashboard_version.version, dashboard.version) as version,
|
||||
COALESCE(dashboard_version.message, '') as message,
|
||||
COALESCE(dashboard_version.data, dashboard.data) as data,
|
||||
COALESCE(dashboard_version.api_version, dashboard.api_version) as api_version
|
||||
FROM `grafana`.`dashboard` as dashboard
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_version` as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`dashboard_provisioning` as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN `grafana`.`user` as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN `grafana`.`user` as updated_user ON COALESCE(dashboard_version.created_by, dashboard.updated_by) = updated_user.id
|
||||
WHERE dashboard.is_folder = FALSE
|
||||
AND dashboard.org_id = 1
|
||||
ORDER BY
|
||||
COALESCE(dashboard_version.created, dashboard.updated) ASC,
|
||||
COALESCE(dashboard_version.version, dashboard.version) ASC,
|
||||
dashboard.uid ASC
|
||||
Vendored
+2
-2
@@ -12,9 +12,9 @@ SELECT
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
dashboard_version.created,
|
||||
dashboard_version.created as updated,
|
||||
updated_user.uid as updated_by,
|
||||
updated_user.id as created_by_id,
|
||||
dashboard_version.created_by as updated_by_id,
|
||||
dashboard_version.version,
|
||||
dashboard_version.message,
|
||||
dashboard_version.data,
|
||||
|
||||
Vendored
+9
-9
@@ -12,23 +12,23 @@ SELECT
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
dashboard_version.created,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) as updated,
|
||||
updated_user.uid as updated_by,
|
||||
updated_user.id as created_by_id,
|
||||
dashboard_version.version,
|
||||
dashboard_version.message,
|
||||
dashboard_version.data,
|
||||
dashboard_version.api_version
|
||||
COALESCE(dashboard_version.created_by, dashboard.updated_by) as updated_by_id,
|
||||
COALESCE(dashboard_version.version, dashboard.version) as version,
|
||||
COALESCE(dashboard_version.message, '') as message,
|
||||
COALESCE(dashboard_version.data, dashboard.data) as data,
|
||||
COALESCE(dashboard_version.api_version, dashboard.api_version) as api_version
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard_version.created_by = updated_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON COALESCE(dashboard_version.created_by, dashboard.updated_by) = updated_user.id
|
||||
WHERE dashboard.is_folder = FALSE
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
AND dashboard_version.version = 3
|
||||
ORDER BY
|
||||
dashboard_version.created DESC,
|
||||
dashboard_version.version DESC,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) DESC,
|
||||
COALESCE(dashboard_version.version, dashboard.version) DESC,
|
||||
dashboard.uid ASC
|
||||
|
||||
Vendored
Executable
+32
@@ -0,0 +1,32 @@
|
||||
SELECT
|
||||
dashboard.org_id,
|
||||
dashboard.id,
|
||||
dashboard.uid,
|
||||
dashboard.folder_uid,
|
||||
dashboard.deleted,
|
||||
plugin_id,
|
||||
provisioning.name as repo_name,
|
||||
provisioning.external_id as repo_path,
|
||||
provisioning.check_sum as repo_hash,
|
||||
provisioning.updated as repo_ts,
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) as updated,
|
||||
updated_user.uid as updated_by,
|
||||
COALESCE(dashboard_version.created_by, dashboard.updated_by) as updated_by_id,
|
||||
COALESCE(dashboard_version.version, dashboard.version) as version,
|
||||
COALESCE(dashboard_version.message, '') as message,
|
||||
COALESCE(dashboard_version.data, dashboard.data) as data,
|
||||
COALESCE(dashboard_version.api_version, dashboard.api_version) as api_version
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON COALESCE(dashboard_version.created_by, dashboard.updated_by) = updated_user.id
|
||||
WHERE dashboard.is_folder = FALSE
|
||||
AND dashboard.org_id = 1
|
||||
ORDER BY
|
||||
COALESCE(dashboard_version.created, dashboard.updated) ASC,
|
||||
COALESCE(dashboard_version.version, dashboard.version) ASC,
|
||||
dashboard.uid ASC
|
||||
Vendored
+2
-2
@@ -12,9 +12,9 @@ SELECT
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
dashboard_version.created,
|
||||
dashboard_version.created as updated,
|
||||
updated_user.uid as updated_by,
|
||||
updated_user.id as created_by_id,
|
||||
dashboard_version.created_by as updated_by_id,
|
||||
dashboard_version.version,
|
||||
dashboard_version.message,
|
||||
dashboard_version.data,
|
||||
|
||||
Vendored
+9
-9
@@ -12,23 +12,23 @@ SELECT
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
dashboard_version.created,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) as updated,
|
||||
updated_user.uid as updated_by,
|
||||
updated_user.id as created_by_id,
|
||||
dashboard_version.version,
|
||||
dashboard_version.message,
|
||||
dashboard_version.data,
|
||||
dashboard_version.api_version
|
||||
COALESCE(dashboard_version.created_by, dashboard.updated_by) as updated_by_id,
|
||||
COALESCE(dashboard_version.version, dashboard.version) as version,
|
||||
COALESCE(dashboard_version.message, '') as message,
|
||||
COALESCE(dashboard_version.data, dashboard.data) as data,
|
||||
COALESCE(dashboard_version.api_version, dashboard.api_version) as api_version
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON dashboard_version.created_by = updated_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON COALESCE(dashboard_version.created_by, dashboard.updated_by) = updated_user.id
|
||||
WHERE dashboard.is_folder = FALSE
|
||||
AND dashboard.org_id = 2
|
||||
AND dashboard.uid = 'UUU'
|
||||
AND dashboard_version.version = 3
|
||||
ORDER BY
|
||||
dashboard_version.created DESC,
|
||||
dashboard_version.version DESC,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) DESC,
|
||||
COALESCE(dashboard_version.version, dashboard.version) DESC,
|
||||
dashboard.uid ASC
|
||||
|
||||
Vendored
Executable
+32
@@ -0,0 +1,32 @@
|
||||
SELECT
|
||||
dashboard.org_id,
|
||||
dashboard.id,
|
||||
dashboard.uid,
|
||||
dashboard.folder_uid,
|
||||
dashboard.deleted,
|
||||
plugin_id,
|
||||
provisioning.name as repo_name,
|
||||
provisioning.external_id as repo_path,
|
||||
provisioning.check_sum as repo_hash,
|
||||
provisioning.updated as repo_ts,
|
||||
dashboard.created,
|
||||
created_user.uid as created_by,
|
||||
dashboard.created_by as created_by_id,
|
||||
COALESCE(dashboard_version.created, dashboard.updated) as updated,
|
||||
updated_user.uid as updated_by,
|
||||
COALESCE(dashboard_version.created_by, dashboard.updated_by) as updated_by_id,
|
||||
COALESCE(dashboard_version.version, dashboard.version) as version,
|
||||
COALESCE(dashboard_version.message, '') as message,
|
||||
COALESCE(dashboard_version.data, dashboard.data) as data,
|
||||
COALESCE(dashboard_version.api_version, dashboard.api_version) as api_version
|
||||
FROM "grafana"."dashboard" as dashboard
|
||||
LEFT OUTER JOIN "grafana"."dashboard_version" as dashboard_version ON dashboard.id = dashboard_version.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."dashboard_provisioning" as provisioning ON dashboard.id = provisioning.dashboard_id
|
||||
LEFT OUTER JOIN "grafana"."user" as created_user ON dashboard.created_by = created_user.id
|
||||
LEFT OUTER JOIN "grafana"."user" as updated_user ON COALESCE(dashboard_version.created_by, dashboard.updated_by) = updated_user.id
|
||||
WHERE dashboard.is_folder = FALSE
|
||||
AND dashboard.org_id = 1
|
||||
ORDER BY
|
||||
COALESCE(dashboard_version.created, dashboard.updated) ASC,
|
||||
COALESCE(dashboard_version.version, dashboard.version) ASC,
|
||||
dashboard.uid ASC
|
||||
Reference in New Issue
Block a user