Connects to source and target, and runs the scope-id form handshake for
each brain the source holds (brain_meta.scope_id_form, which a learning
layer writes): where the two sides disagree in a way a copy of the rows
as they are cannot keep, it refuses the whole migration, naming the
record, before it copies any table. A source brain with the record
whose user and persona scope ids read the same in both forms is
copied as a plain one, and a target without the record gets none.
Lists the source's tables and, for each one, reads rows in streaming batches.
Creates the table in the target (if it doesn't exist).
Migrate data between any two backends.
The engine:
brain_meta.scope_id_form, which a learning layer writes): where the two sides disagree in a way a copy of the rows as they are cannot keep, it refuses the whole migration, naming the record, before it copies any table. A source brain with the record whoseuserandpersonascope ids read the same in both forms is copied as a plain one, and a target without the record gets none.