SyncInstance syncs the instance.
(ctx context.Context, req *connect.Request[v1pb.SyncInstanceRequest])
| 735 | |
| 736 | // SyncInstance syncs the instance. |
| 737 | func (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. |
| 765 | func (s *InstanceService) BatchSyncInstances(ctx context.Context, req *connect.Request[v1pb.BatchSyncInstancesRequest]) (*connect.Response[v1pb.BatchSyncInstancesResponse], error) { |
nothing calls this directly
no test coverage detected