code: def _add_version_info(func):
  		
  		pattern = r'v(?P<source>\d+)_to_(?P<target>\d+)$'
  		match = re.match(pattern, func.__name__)
  		if not match:
  			raise ValueError("migration function name must match " + pattern)
  		func.source, func.target = map(int, match.groups())
docs: Add .source and .target attributes to the registered function.