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

Method SyncInstance

backend/api/v1/instance_service.go:737–762  ·  view source on GitHub ↗

SyncInstance syncs the instance.

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

Source from the content-addressed store, hash-verified

735
736// SyncInstance syncs the instance.
737func (s *InstanceService) SyncInstance(ctx context.Context, req *connect.Request[v1pb.SyncInstanceRequest]) (*connect.Response[v1pb.SyncInstanceResponse], error) {
738 instance, err := getInstanceMessage(ctx, s.store, req.Msg.Name)
739 if err != nil {
740 return nil, err
741 }
742 if instance.Deleted {
743 return nil, connect.NewError(connect.CodeNotFound, errors.Errorf("instance %q has been deleted", req.Msg.Name))
744 }
745
746 updatedInstance, allDatabases, newDatabases, err := s.schemaSyncer.SyncInstance(ctx, instance)
747 if err != nil {
748 return nil, err
749 }
750 if req.Msg.EnableFullSync {
751 // Sync all databases in the instance asynchronously.
752 s.schemaSyncer.SyncAllDatabases(ctx, updatedInstance)
753 } else {
754 s.schemaSyncer.SyncDatabasesAsync(newDatabases)
755 }
756
757 response := &v1pb.SyncInstanceResponse{}
758 for _, database := range allDatabases {
759 response.Databases = append(response.Databases, database.Name)
760 }
761 return connect.NewResponse(response), nil
762}
763
764// BatchSyncInstances syncs multiple instances.
765func (s *InstanceService) BatchSyncInstances(ctx context.Context, req *connect.Request[v1pb.BatchSyncInstancesRequest]) (*connect.Response[v1pb.BatchSyncInstancesResponse], 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