-`operations_and_block_paths`_List[Tuple[operation, str]]_ - List of operations and the block paths to apply them to.
-`revisions_from`_datetime, optional_ - Only revisions created from this date onwards will be updated. Passing `None` updates all revisions. Defaults to `None`. Note that live and latest revisions will be updated regardless of what value this takes.
-`chunk_size`_int, optional_ - chunk size for `queryset.iterator` and `bulk_update`.
Defaults to 1024.
-`**kwargs` - atomic, elidable, hints for superclass `RunPython` can be given
class RenameStreamChildrenOperation(BaseBlockOperation)
```
Renames all `StreamBlock` children of the given type
**Notes**:
The `block_path_str` when using this operation should point to the parent `StreamBlock` which contains the blocks to be renamed, not the block being renamed.
class RenameStructChildrenOperation(BaseBlockOperation)
```
Renames all `StructBlock` children of the given type
**Notes**:
The `block_path_str` when using this operation should point to the parent `StructBlock` which contains the blocks to be renamed, not the block being renamed.
class RemoveStreamChildrenOperation(BaseBlockOperation)
```
Removes all `StreamBlock` children of the given type
**Notes**:
The `block_path_str` when using this operation should point to the parent `StreamBlock` which contains the blocks to be removed, not the block being removed.
class RemoveStructChildrenOperation(BaseBlockOperation)
```
Removes all `StructBlock` children of the given type
**Notes**:
The `block_path_str` when using this operation should point to the parent `StructBlock` which contains the blocks to be removed, not the block being removed.
class StreamChildrenToListBlockOperation(BaseBlockOperation)
```
Combines `StreamBlock` children of the given type into a new `ListBlock`
**Notes**:
The `block_path_str` when using this operation should point to the parent `StreamBlock` which contains the blocks to be combined, not the child block itself.
class StreamChildrenToStreamBlockOperation(BaseBlockOperation)
```
Combines `StreamBlock` children of the given types into a new `StreamBlock`
**Notes**:
The `block_path_str` when using this operation should point to the parent `StreamBlock` which contains the blocks to be combined, not the child block itself.
class StreamChildrenToStructBlockOperation(BaseBlockOperation)
```
Move each `StreamBlock` child of the given type inside a new `StructBlock`
A new `StructBlock` will be created as a child of the parent `StreamBlock` for each child block of the given type, and then that child block will be moved from the parent StreamBlocks children inside the new `StructBlock` as a child of that `StructBlock`.
- The `block_path_str` when using this operation should point to the parent `StreamBlock` which contains the blocks to be combined, not the child block itself.
- Block ids are not preserved here since the new blocks are structurally different than the previous blocks.
-`block_value`: The value of the block. This would be a list or dict of children for structural blocks.
-`block_def`: The definition of the block.
-`block_path`: A `"."` separated list of names of the blocks from the current block (not included) to the nested block of which the value will be passed to the operation.
-`operation`: An Operation class instance (extends `BaseBlockOperation`), which has an `apply` method for mapping values.
-`stream_block_value`: The value of the `StructBlock`, a dict of child blocks
-`block_def`: The definition of the `StructBlock`
-`block_path`: A `"."` separated list of names of the blocks from the current block (not included) to the nested block of which the value will be passed to the operation.
-`stream_block_value`: The value of the `ListBlock`, a list of child blocks
-`block_def`: The definition of the `ListBlock`
-`block_path`: A `"."` separated list of names of the blocks from the current block (not included) to the nested block of which the value will be passed to the operation.
-`raw_data`: The current stream data (a list of top level blocks)
-`block_path_str`: A `"."` separated list of names of the blocks from the top level block to the nested block of which the value will be passed to the operation.
-`operation`: A subclass of `operations.BaseBlockOperation`. It will have the `apply` method for applying changes to the matching block values.
-`streamfield`: The `StreamField` for which data is being migrated. This is used to get the definitions of the blocks.
Operations for `StreamField` data migrations defined in `wagtail.blocks.migrations` require a "block path" to determine which blocks they should be applied to.
Block names are the values associated with the `"type"` keys in the stream data's dictionary structures. As such, traversing or selecting `ListBlock` members requires the use of the `"item"` block name.
The value that an operation's `apply` method receives is the `"value"` member of the dict associated with the terminal block name in the block path.
For examples see [the tutorial](using_streamfield_migration_block_paths).