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

Method BatchSyncInstances

backend/api/v1/instance_service.go:765–788  ·  view source on GitHub ↗

BatchSyncInstances syncs multiple instances.

(ctx context.Context, req *connect.Request[v1pb.BatchSyncInstancesRequest])

Source from the content-addressed store, hash-verified

763
764// BatchSyncInstances syncs multiple instances.
765func (s *InstanceService) BatchSyncInstances(ctx context.Context, req *connect.Request[v1pb.BatchSyncInstancesRequest]) (*connect.Response[v1pb.BatchSyncInstancesResponse], error) {
766 for _, r := range req.Msg.Requests {
767 instance, err := getInstanceMessage(ctx, s.store, r.Name)
768 if err != nil {
769 return nil, err
770 }
771 if instance.Deleted {
772 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("instance %q has been deleted", r.Name))
773 }
774
775 updatedInstance, _, newDatabases, err := s.schemaSyncer.SyncInstance(ctx, instance)
776 if err != nil {
777 return nil, connect.NewError(connect.CodeInternal, errors.Wrapf(err, "failed to sync instance"))
778 }
779 if r.EnableFullSync {
780 // Sync all databases in the instance asynchronously.
781 s.schemaSyncer.SyncAllDatabases(ctx, updatedInstance)
782 } else {
783 s.schemaSyncer.SyncDatabasesAsync(newDatabases)
784 }
785 }
786
787 return connect.NewResponse(&v1pb.BatchSyncInstancesResponse{}), nil
788}
789
790// BatchUpdateInstances update multiple instances.
791func (s *InstanceService) BatchUpdateInstances(ctx context.Context, req *connect.Request[v1pb.BatchUpdateInstancesRequest]) (*connect.Response[v1pb.BatchUpdateInstancesResponse], error) {

Callers

nothing calls this directly

Calls 5

getInstanceMessageFunction · 0.85
ErrorfMethod · 0.80
SyncAllDatabasesMethod · 0.80
SyncDatabasesAsyncMethod · 0.80
SyncInstanceMethod · 0.65

Tested by

no test coverage detected