MCPcopy Create free account
hub / github.com/bytebase/bytebase / getDatabaseMessagesByTargets

Function getDatabaseMessagesByTargets

backend/api/v1/rollout_service_task.go:249–298  ·  view source on GitHub ↗
(ctx context.Context, s *store.Store, targets []string)

Source from the content-addressed store, hash-verified

247}
248
249func getDatabaseMessagesByTargets(ctx context.Context, s *store.Store, targets []string) ([]*store.DatabaseMessage, error) {
250 databases := []*store.DatabaseMessage{}
251
252 for _, target := range targets {
253 if _, _, err := common.GetProjectIDDatabaseGroupID(target); err == nil {
254 databaseGroup, err := getDatabaseGroupByName(ctx, s, target, v1pb.DatabaseGroupView_DATABASE_GROUP_VIEW_FULL)
255 if err != nil {
256 return nil, errors.Wrapf(err, "failed to get database group %q", target)
257 }
258 for _, matched := range databaseGroup.MatchedDatabases {
259 instanceID, databaseName, err := common.GetInstanceDatabaseID(matched.Name)
260 if err != nil {
261 return nil, errors.Wrapf(err, "failed to parse %q", matched.Name)
262 }
263 database, err := s.GetDatabase(ctx, &store.FindDatabaseMessage{
264 Workspace: common.GetWorkspaceIDFromContext(ctx),
265 InstanceID: &instanceID,
266 DatabaseName: &databaseName,
267 })
268 if err != nil {
269 return nil, errors.Wrapf(err, "failed to get database")
270 }
271 if database == nil {
272 return nil, errors.Errorf("database %q not found", matched.Name)
273 }
274 databases = append(databases, database)
275 }
276 } else if _, _, err := common.GetInstanceDatabaseID(target); err == nil {
277 instanceID, databaseName, err := common.GetInstanceDatabaseID(target)
278 if err != nil {
279 return nil, errors.Wrapf(err, "failed to parse %q", target)
280 }
281 database, err := s.GetDatabase(ctx, &store.FindDatabaseMessage{
282 Workspace: common.GetWorkspaceIDFromContext(ctx),
283 InstanceID: &instanceID,
284 DatabaseName: &databaseName,
285 })
286 if err != nil {
287 return nil, errors.Wrapf(err, "failed to get database")
288 }
289 if database == nil {
290 return nil, errors.Errorf("database %q not found", target)
291 }
292 databases = append(databases, database)
293 } else {
294 return nil, errors.Errorf("invalid target %q", target)
295 }
296 }
297 return databases, nil
298}
299
300func getTaskCreatesFromExportDataConfig(
301 ctx context.Context,

Calls 6

GetInstanceDatabaseIDFunction · 0.92
getDatabaseGroupByNameFunction · 0.85
ErrorfMethod · 0.80
GetDatabaseMethod · 0.65

Tested by

no test coverage detected