diff --git a/cmd/atlas/internal/cmdapi/migrate.go b/cmd/atlas/internal/cmdapi/migrate.go index 5683f888063..a36e617e2c6 100644 --- a/cmd/atlas/internal/cmdapi/migrate.go +++ b/cmd/atlas/internal/cmdapi/migrate.go @@ -102,9 +102,20 @@ If run with the "--dry-run" flag, atlas will not execute any SQL.`, if err != nil { return err } - set := NewReportProvider(cmd.Context(), project, envs) - defer func() { set.Flush(cmd, cmdErr) }() + var ( + hasRemote bool + set = NewReportProvider(cmd.Context(), project, envs) + ) + defer func() { + if hasRemote { + set.Flush(cmd, cmdErr) + } + }() return cmdEnvsRun(envs, setMigrateEnvFlags, cmd, func(env *Env) error { + // Report deployments only if one of the migration directories is a cloud directory. + if u, err := url.Parse(flags.dirURL); err == nil && u.Scheme != cmdmigrate.DirTypeFile { + hasRemote = true + } return migrateApplyRun(cmd, args, flags, set.ReportFor(flags, env)) }) } diff --git a/cmd/atlas/internal/cmdapi/migrate_test.go b/cmd/atlas/internal/cmdapi/migrate_test.go index c8b0a8f7b49..31d9af86748 100644 --- a/cmd/atlas/internal/cmdapi/migrate_test.go +++ b/cmd/atlas/internal/cmdapi/migrate_test.go @@ -973,7 +973,8 @@ env { require.Equal(t, "Error: openerror", *reports.Error) }) - t.Run("LocalFile", func(t *testing.T) { + t.Run("LocalDirectory", func(t *testing.T) { + report.DirName = "NotReported" cmd := migrateCmd() cmd.AddCommand(migrateApplyCmd()) _, err := runCmd( @@ -985,7 +986,7 @@ env { "--var", "cloud_url="+srv.URL, ) require.NoError(t, err) - require.Equal(t, cloudapi.DefaultDirName, report.DirName) + require.Equal(t, "NotReported", report.DirName) }) }