fn apply_migration<F>(root: &Path, plan: &MigrationPlan, lock: F) -> Result<()>where F: FnOnce(&Path) -> Result<()>,