Long-term we want that migration to be done entirely in SQL,
but for now this is a hotfix to not cause OOMs on large databases.
This is using a homegrown version of `Repo.stream`, it's worse in
terms of performance than the upstream since it doesn't use the same
prepared query for chunk queries, but unlike the upstream it supports
preloads.