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 {