summaryrefslogtreecommitdiff
path: root/alembic/migration.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-11-22 11:49:20 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-11-22 11:49:20 -0500
commit296c5160285500fd52973d327608410c6b4ebbdd (patch)
tree9ca8f3ddb95b8e13b948666315c46a60c13d7cdf /alembic/migration.py
parent43bb4ec14aacc8e014d565f88876a32bc8a90428 (diff)
downloadalembic-296c5160285500fd52973d327608410c6b4ebbdd.tar.gz
- break out the concept of "down revision" into two pieces:
down_revision and "dependencies". For migration traversal, the downrevs we care about are the union of these two sets. however for location of nodes and branch labeling, we look only at down_revsion. this works really well and allows us to have mutually-dependent trees that can easily be itererated independently of each other. docs are needed
Diffstat (limited to 'alembic/migration.py')
-rw-r--r--alembic/migration.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/alembic/migration.py b/alembic/migration.py
index 7d854ba..eefb1d1 100644
--- a/alembic/migration.py
+++ b/alembic/migration.py
@@ -553,7 +553,7 @@ class RevisionStep(MigrationStep):
@property
def from_revisions(self):
if self.is_upgrade:
- return self.revision._down_revision_tuple
+ return self.revision._all_down_revisions
else:
return (self.revision.revision, )
@@ -562,11 +562,11 @@ class RevisionStep(MigrationStep):
if self.is_upgrade:
return (self.revision.revision, )
else:
- return self.revision._down_revision_tuple
+ return self.revision._all_down_revisions
@property
def _has_scalar_down_revision(self):
- return len(self.revision._down_revision_tuple) == 1
+ return len(self.revision._all_down_revisions) == 1
def should_delete_branch(self, heads):
if not self.is_downgrade:
@@ -575,7 +575,7 @@ class RevisionStep(MigrationStep):
if self.revision.revision not in heads:
return False
- downrevs = self.revision._down_revision_tuple
+ downrevs = self.revision._all_down_revisions
if not downrevs:
# is a base
return True
@@ -587,7 +587,7 @@ class RevisionStep(MigrationStep):
descendants = set(
r.revision for r in self.revision_map._get_descendant_nodes(
- self.revision_map.get_revisions(downrev.nextrev),
+ self.revision_map.get_revisions(downrev._all_nextrev),
check=False
)
)
@@ -606,7 +606,7 @@ class RevisionStep(MigrationStep):
# TODO: this doesn't work; make sure tests are here to ensure
# this fails
- #if len(downrev.nextrev.intersection(heads).difference(
+ #if len(downrev._all_nextrev.intersection(heads).difference(
# [self.revision.revision])):
return True
@@ -662,7 +662,7 @@ class RevisionStep(MigrationStep):
if not self.is_upgrade:
return False
- downrevs = self.revision._down_revision_tuple
+ downrevs = self.revision._all_down_revisions
if not downrevs:
# is a base
@@ -680,7 +680,7 @@ class RevisionStep(MigrationStep):
if not self.is_upgrade:
return False
- downrevs = self.revision._down_revision_tuple
+ downrevs = self.revision._all_down_revisions
if len(downrevs) > 1 and \
len(heads.intersection(downrevs)) > 1:
@@ -692,7 +692,7 @@ class RevisionStep(MigrationStep):
if not self.is_downgrade:
return False
- downrevs = self.revision._down_revision_tuple
+ downrevs = self.revision._all_down_revisions
if self.revision.revision in heads and len(downrevs) > 1:
return True
@@ -701,12 +701,12 @@ class RevisionStep(MigrationStep):
def update_version_num(self, heads):
if not self._has_scalar_down_revision:
- downrev = heads.intersection(self.revision._down_revision_tuple)
+ downrev = heads.intersection(self.revision._all_down_revisions)
assert len(downrev) == 1, \
"Can't do an UPDATE because downrevision is ambiguous"
down_revision = list(downrev)[0]
else:
- down_revision = self.revision.down_revision
+ down_revision = self.revision._all_down_revisions[0]
if self.is_upgrade:
return down_revision, self.revision.revision