Switched from an adjancency list and uncached, iterative depth-first
search to a Node-based design with direct parent/child links and a
cached, recursive depth-first search. With this change, calculating
a migration plan for a large graph takes several seconds instead of
several hours.
Marked test `migrations.test_graph.GraphTests.test_dfs` as an expected
failure due to reaching the maximum recursion depth.
Backport of
|
||
---|---|---|
.. | ||
operations | ||
__init__.py | ||
autodetector.py | ||
executor.py | ||
graph.py | ||
loader.py | ||
migration.py | ||
optimizer.py | ||
questioner.py | ||
recorder.py | ||
state.py | ||
topological_sort.py | ||
writer.py |