From ee23a7a7d9dc6e2653432870e9de9a8984119b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20=C5=A0tibran=C3=BD?= Date: Wed, 12 Mar 2025 11:02:00 +0100 Subject: [PATCH] Disable dashboard and folder synchronization when running on Spanner. (#102007) --- pkg/services/folder/folderimpl/folder.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/services/folder/folderimpl/folder.go b/pkg/services/folder/folderimpl/folder.go index 414076ee924..3996270a885 100644 --- a/pkg/services/folder/folderimpl/folder.go +++ b/pkg/services/folder/folderimpl/folder.go @@ -154,6 +154,7 @@ func (s *Service) DBMigration(db db.DB) { ctx := context.Background() err := db.WithDbSession(ctx, func(sess *sqlstore.DBSession) error { var err error + deleteOldFolders := true if db.GetDialect().DriverName() == migrator.SQLite { // covered by UQE_folder_org_id_uid _, err = sess.Exec(` @@ -168,6 +169,10 @@ func (s *Service) DBMigration(db db.DB) { SELECT uid, org_id, title, created, updated FROM dashboard WHERE is_folder = true ON CONFLICT(uid, org_id) DO UPDATE SET title=excluded.title, updated=excluded.updated `) + } else if db.GetDialect().DriverName() == migrator.Spanner { + // We may eventually make this migration work with Spanner, but for now don't do anything. + // We intend to store dashboards and folders only in unified storage when using spanner. + deleteOldFolders = false } else { // covered by UQE_folder_org_id_uid _, err = sess.Exec(` @@ -180,11 +185,13 @@ func (s *Service) DBMigration(db db.DB) { return err } - // covered by UQE_folder_org_id_uid - _, err = sess.Exec(` + if deleteOldFolders { + // covered by UQE_folder_org_id_uid + _, err = sess.Exec(` DELETE FROM folder WHERE NOT EXISTS (SELECT 1 FROM dashboard WHERE dashboard.uid = folder.uid AND dashboard.org_id = folder.org_id AND dashboard.is_folder = true) `) + } return err }) if err != nil {