def load_migration_nodes():
nodes = {None: MigrationRouteHead()}
for path in _migrations_dir_path.iterdir():
if not _migration_filename_pattern.match(path.name):
continue
module = importlib.import_module(f'quizzler.migrations.{path.stem}')
nodes[path.stem] = MigrationNode(path.stem, module)
# Fill linked-list info.
for name, node in nodes.items():
if name is None:
continue
prev_name = node.module.previous
prev_node = nodes[prev_name]
if prev_node.next is not None:
raise MigrationRouteConflict(
f'{name} and {prev_node.next.name} '
f'both specify previous = {prev_name!r}',
)
prev_node.next = node
node.prev = prev_node
return nodes
评论列表
文章目录