Skip to content

Commit 88cd609

Browse files
authored
fix: unmarshal remote override into base config (#3028)
* fix: unmarshal remote override into base config * chore: account for project ref flag when loading config * fix: restore project id from base config
1 parent 9898451 commit 88cd609

File tree

31 files changed

+124
-127
lines changed

31 files changed

+124
-127
lines changed

cmd/link.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"github.com/spf13/cobra"
99
"github.com/spf13/viper"
1010
"github.com/supabase/cli/internal/link"
11-
"github.com/supabase/cli/internal/utils"
1211
"github.com/supabase/cli/internal/utils/flags"
1312
"golang.org/x/term"
1413
)
@@ -31,8 +30,7 @@ var (
3130
return err
3231
}
3332
fsys := afero.NewOsFs()
34-
utils.Config.ProjectId = flags.ProjectRef
35-
if err := utils.LoadConfigFS(fsys); err != nil {
33+
if err := flags.LoadConfig(fsys); err != nil {
3634
return err
3735
}
3836
return link.Run(ctx, flags.ProjectRef, fsys)

internal/bootstrap/bootstrap.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func Run(ctx context.Context, starter StarterTemplate, fsys afero.Fs, options ..
9595
return err
9696
}
9797
// 4. Link project
98-
if err := utils.LoadConfigFS(fsys); err != nil {
98+
if err := flags.LoadConfig(fsys); err != nil {
9999
return err
100100
}
101101
link.LinkServices(ctx, flags.ProjectRef, tenant.NewApiKey(keys).Anon, fsys)

internal/config/push/push.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,20 @@ import (
77

88
"github.com/spf13/afero"
99
"github.com/supabase/cli/internal/utils"
10+
"github.com/supabase/cli/internal/utils/flags"
1011
"github.com/supabase/cli/pkg/config"
1112
)
1213

1314
func Run(ctx context.Context, ref string, fsys afero.Fs) error {
14-
utils.Config.ProjectId = ref
15-
if err := utils.LoadConfigFS(fsys); err != nil {
15+
if err := flags.LoadConfig(fsys); err != nil {
1616
return err
1717
}
1818
client := config.NewConfigUpdater(*utils.GetSupabase())
19-
remote, _ := utils.Config.GetRemoteByProjectRef(ref)
19+
remote, err := utils.Config.GetRemoteByProjectRef(ref)
20+
if err != nil {
21+
// Use base config when no remote is declared
22+
remote.ProjectId = ref
23+
}
2024
fmt.Fprintln(os.Stderr, "Pushing config to project:", remote.ProjectId)
2125
console := utils.NewConsole()
2226
keep := func(name string) bool {

internal/db/branch/create/create.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/go-errors/errors"
1515
"github.com/spf13/afero"
1616
"github.com/supabase/cli/internal/utils"
17+
"github.com/supabase/cli/internal/utils/flags"
1718
)
1819

1920
var (
@@ -22,7 +23,7 @@ var (
2223
)
2324

2425
func Run(branch string, fsys afero.Fs) error {
25-
if err := utils.LoadConfigFS(fsys); err != nil {
26+
if err := flags.LoadConfig(fsys); err != nil {
2627
return err
2728
}
2829
if err := utils.AssertSupabaseDbIsRunning(); err != nil {

internal/db/branch/delete/delete.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ import (
1212
"github.com/go-errors/errors"
1313
"github.com/spf13/afero"
1414
"github.com/supabase/cli/internal/utils"
15+
"github.com/supabase/cli/internal/utils/flags"
1516
)
1617

1718
func Run(branch string, fsys afero.Fs) error {
18-
if err := utils.LoadConfigFS(fsys); err != nil {
19+
if err := flags.LoadConfig(fsys); err != nil {
1920
return err
2021
}
2122
if err := utils.AssertSupabaseDbIsRunning(); err != nil {

internal/db/branch/switch_/switch_.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ import (
1212
"github.com/spf13/afero"
1313
"github.com/supabase/cli/internal/db/reset"
1414
"github.com/supabase/cli/internal/utils"
15+
"github.com/supabase/cli/internal/utils/flags"
1516
)
1617

1718
func Run(ctx context.Context, target string, fsys afero.Fs, options ...func(*pgx.ConnConfig)) error {
1819
// 1. Sanity checks
1920
{
20-
if err := utils.LoadConfigFS(fsys); err != nil {
21+
if err := flags.LoadConfig(fsys); err != nil {
2122
return err
2223
}
2324
if err := utils.AssertSupabaseDbIsRunning(); err != nil {

internal/db/diff/diff.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/supabase/cli/internal/db/start"
2525
"github.com/supabase/cli/internal/gen/keys"
2626
"github.com/supabase/cli/internal/utils"
27+
"github.com/supabase/cli/internal/utils/flags"
2728
"github.com/supabase/cli/pkg/migration"
2829
"github.com/supabase/cli/pkg/parser"
2930
)
@@ -32,7 +33,7 @@ type DiffFunc func(context.Context, string, string, []string) (string, error)
3233

3334
func Run(ctx context.Context, schema []string, file string, config pgconn.Config, differ DiffFunc, fsys afero.Fs, options ...func(*pgx.ConnConfig)) (err error) {
3435
// Sanity checks.
35-
if err := utils.LoadConfigFS(fsys); err != nil {
36+
if err := flags.LoadConfig(fsys); err != nil {
3637
return err
3738
}
3839
if utils.IsLocalDatabase(config) {

internal/db/diff/pgadmin.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/supabase/cli/internal/db/start"
1212
"github.com/supabase/cli/internal/migration/new"
1313
"github.com/supabase/cli/internal/utils"
14+
"github.com/supabase/cli/internal/utils/flags"
1415
"github.com/supabase/cli/pkg/config"
1516
)
1617

@@ -35,7 +36,7 @@ func SaveDiff(out, file string, fsys afero.Fs) error {
3536
func RunPgAdmin(ctx context.Context, schema []string, file string, config pgconn.Config, fsys afero.Fs) error {
3637
// Sanity checks.
3738
{
38-
if err := utils.LoadConfigFS(fsys); err != nil {
39+
if err := flags.LoadConfig(fsys); err != nil {
3940
return err
4041
}
4142
if err := utils.AssertSupabaseDbIsRunning(); err != nil {

internal/db/pull/pull.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/supabase/cli/internal/migration/new"
1919
"github.com/supabase/cli/internal/migration/repair"
2020
"github.com/supabase/cli/internal/utils"
21+
"github.com/supabase/cli/internal/utils/flags"
2122
"github.com/supabase/cli/pkg/migration"
2223
)
2324

@@ -35,7 +36,7 @@ var (
3536

3637
func Run(ctx context.Context, schema []string, config pgconn.Config, name string, fsys afero.Fs, options ...func(*pgx.ConnConfig)) error {
3738
// 1. Sanity checks.
38-
if err := utils.LoadConfigFS(fsys); err != nil {
39+
if err := flags.LoadConfig(fsys); err != nil {
3940
return err
4041
}
4142
// 2. Check postgres connection

internal/db/push/push.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ func Run(ctx context.Context, dryRun, ignoreVersionMismatch bool, includeRoles,
3131
}
3232
var seeds []migration.SeedFile
3333
if includeSeed {
34-
if remote, _ := utils.Config.GetRemoteByProjectRef(flags.ProjectRef); !remote.Db.Seed.Enabled {
35-
fmt.Fprintln(os.Stderr, "Skipping seed because it is disabled in config.toml for project:", remote.ProjectId)
36-
} else if seeds, err = migration.GetPendingSeeds(ctx, remote.Db.Seed.SqlPaths, conn, afero.NewIOFS(fsys)); err != nil {
34+
// TODO: flag should override config but we don't resolve glob paths when seed is disabled.
35+
if !utils.Config.Db.Seed.Enabled {
36+
fmt.Fprintln(os.Stderr, "Skipping seed because it is disabled in config.toml for project:", flags.ProjectRef)
37+
} else if seeds, err = migration.GetPendingSeeds(ctx, utils.Config.Db.Seed.SqlPaths, conn, afero.NewIOFS(fsys)); err != nil {
3738
return err
3839
}
3940
}

0 commit comments

Comments
 (0)