From 6b4394d8e67aaa1be7793ffc03cdf33564e9dae3 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 29 Nov 2022 09:25:25 +0200 Subject: [PATCH] [v9.2.x] SQL Datasources: Fix annotation migration (#59454) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SQL Datasources: Fix annotation migration (#59438) (cherry picked from commit 71e4a8261df505cd1f14e3aeed18c7cd182dad0f) Co-authored-by: Zoltán Bedi --- .../plugins/sql/utils/migration.test.ts | 28 +++++++++++++++++++ .../features/plugins/sql/utils/migration.ts | 9 ++---- 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 public/app/features/plugins/sql/utils/migration.test.ts diff --git a/public/app/features/plugins/sql/utils/migration.test.ts b/public/app/features/plugins/sql/utils/migration.test.ts new file mode 100644 index 00000000000..3a9e958ea9b --- /dev/null +++ b/public/app/features/plugins/sql/utils/migration.test.ts @@ -0,0 +1,28 @@ +import { QueryFormat } from '../types'; + +import migrateAnnotation from './migration'; + +describe('Annotation migration', () => { + const annotation = { + datasource: { + uid: 'P4FDCC188E688367F', + type: 'mysql', + }, + enable: false, + hide: false, + iconColor: 'rgba(0, 211, 255, 1)', + limit: 100, + name: 'Single', + rawQuery: + "SELECT\n createdAt as time,\n 'single' as text,\n hostname as tags\nFROM\n grafana_metric\nWHERE\n $__timeFilter(createdAt)\nORDER BY time\nLIMIT 1\n", + showIn: 0, + tags: [], + type: 'tags', + }; + + it('should migrate from old format to new', () => { + const newAnnotationFormat = migrateAnnotation(annotation); + expect(newAnnotationFormat.target?.format).toBe(QueryFormat.Table); + expect(newAnnotationFormat.target?.rawSql).toBe(annotation.rawQuery); + }); +}); diff --git a/public/app/features/plugins/sql/utils/migration.ts b/public/app/features/plugins/sql/utils/migration.ts index 0e39a7bbb1b..cdbcc9df283 100644 --- a/public/app/features/plugins/sql/utils/migration.ts +++ b/public/app/features/plugins/sql/utils/migration.ts @@ -1,6 +1,6 @@ import { AnnotationQuery } from '@grafana/data'; -import { EditorMode } from '@grafana/experimental'; +import { applyQueryDefaults } from '../defaults'; import { SQLQuery } from '../types'; export default function migrateAnnotation(annotation: AnnotationQuery) { @@ -10,12 +10,7 @@ export default function migrateAnnotation(annotation: AnnotationQuery) return annotation; } - const newQuery: SQLQuery = { - ...(annotation.target ?? {}), - refId: annotation.target?.refId ?? 'Anno', - editorMode: EditorMode.Code, - rawSql: oldQuery, - }; + const newQuery = applyQueryDefaults({ refId: 'Annotation', ...(annotation.target ?? {}), rawSql: oldQuery }); return { ...annotation,