github.com/supabase/cli@v1.168.1/internal/utils/tenant/database.go (about)

     1  package tenant
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/go-errors/errors"
     7  	"github.com/supabase/cli/internal/utils"
     8  )
     9  
    10  var errDatabaseVersion = errors.New("Database version not found.")
    11  
    12  func GetDatabaseVersion(ctx context.Context, projectRef string) (string, error) {
    13  	resp, err := utils.GetSupabase().GetProjectsWithResponse(ctx)
    14  	if err != nil {
    15  		return "", errors.Errorf("failed to retrieve projects: %w", err)
    16  	}
    17  	if resp.JSON200 == nil {
    18  		return "", errors.New("Unexpected error retrieving projects: " + string(resp.Body))
    19  	}
    20  	for _, project := range *resp.JSON200 {
    21  		if project.Id == projectRef && len(project.Database.Version) > 0 {
    22  			return project.Database.Version, nil
    23  		}
    24  	}
    25  	return "", errors.New(errDatabaseVersion)
    26  }