Implement a dry run mode for the migrator that logs what it would do but doesn't do it. See TODO notes in the code.