MCPcopy Index your code
hub / github.com/bytebase/bytebase / GetDatabase

Method GetDatabase

backend/store/database.go:100–121  ·  view source on GitHub ↗

GetDatabase gets a database.

(ctx context.Context, find *FindDatabaseMessage)

Source from the content-addressed store, hash-verified

98
99// GetDatabase gets a database.
100func (s *Store) GetDatabase(ctx context.Context, find *FindDatabaseMessage) (*DatabaseMessage, error) {
101 if find.InstanceID != nil && find.DatabaseName != nil {
102 if v, ok := s.databaseCache.Get(getDatabaseCacheKey(find.Workspace, *find.InstanceID, *find.DatabaseName)); ok && s.enableCache {
103 return v, nil
104 }
105 }
106
107 databases, err := s.ListDatabases(ctx, find)
108 if err != nil {
109 return nil, err
110 }
111 if len(databases) == 0 {
112 return nil, nil
113 }
114 if len(databases) > 1 {
115 return nil, &common.Error{Code: common.Conflict, Err: errors.Errorf("found %d database with filter %+v, expect 1", len(databases), find)}
116 }
117 database := databases[0]
118
119 s.databaseCache.Add(getDatabaseCacheKey(find.Workspace, database.InstanceID, database.DatabaseName), database)
120 return database, nil
121}
122
123// ListDatabases lists all databases.
124func (s *Store) ListDatabases(ctx context.Context, find *FindDatabaseMessage) ([]*DatabaseMessage, error) {

Callers 3

CreateDatabaseDefaultMethod · 0.95
UpsertDatabaseMethod · 0.95
UpdateDatabaseMethod · 0.95

Calls 4

ListDatabasesMethod · 0.95
getDatabaseCacheKeyFunction · 0.85
GetMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected