From: Hong Minhee Date: Sat, 30 Mar 2013 20:49:55 +0000 (+0900) Subject: Print message to each upgrade/downgrade step X-Git-Tag: rel_0_5_0~13^2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c731b8f07b433b8f7a48d805cc5124958f49ac3e;p=thirdparty%2Fsqlalchemy%2Falembic.git Print message to each upgrade/downgrade step --- diff --git a/alembic/migration.py b/alembic/migration.py index e06b01e2..000a0c5d 100644 --- a/alembic/migration.py +++ b/alembic/migration.py @@ -194,14 +194,18 @@ class MigrationContext(object): """ current_rev = rev = False self.impl.start_migrations() - for change, prev_rev, rev in self._migrations_fn( - self.get_current_revision(), - self): + for change, prev_rev, rev, doc in self._migrations_fn( + self.get_current_revision(), + self): if current_rev is False: current_rev = prev_rev if self.as_sql and not current_rev: self._version.create(self.connection) - log.info("Running %s %s -> %s", change.__name__, prev_rev, rev) + if doc: + log.info("Running %s %s -> %s, %s", change.__name__, prev_rev, + rev, doc) + else: + log.info("Running %s %s -> %s", change.__name__, prev_rev, rev) if self.as_sql: self.impl.static_output( "-- Running %s %s -> %s" % diff --git a/alembic/script.py b/alembic/script.py index 68d266ea..2fbccae5 100644 --- a/alembic/script.py +++ b/alembic/script.py @@ -168,14 +168,16 @@ class ScriptDirectory(object): def _upgrade_revs(self, destination, current_rev): revs = self.iterate_revisions(destination, current_rev) return [ - (script.module.upgrade, script.down_revision, script.revision) + (script.module.upgrade, script.down_revision, script.revision, + script.doc) for script in reversed(list(revs)) ] def _downgrade_revs(self, destination, current_rev): revs = self.iterate_revisions(current_rev, destination) return [ - (script.module.downgrade, script.revision, script.down_revision) + (script.module.downgrade, script.revision, script.down_revision, + script.doc) for script in revs ] @@ -374,7 +376,8 @@ class Script(object): @property def doc(self): """Return the docstring given in the script.""" - return re.split(r"\n\n", self.module.__doc__)[0] + if self.module.__doc__: + return re.split(r"\n\n", self.module.__doc__)[0] def add_nextrev(self, rev): self.nextrev = self.nextrev.union([rev]) diff --git a/tests/test_revision_paths.py b/tests/test_revision_paths.py index cfb4affa..9492f742 100644 --- a/tests/test_revision_paths.py +++ b/tests/test_revision_paths.py @@ -10,11 +10,11 @@ def setup(): global env env = staging_env() global a, b, c, d, e - a = env.generate_revision(util.rev_id(), None, refresh=True) - b = env.generate_revision(util.rev_id(), None, refresh=True) - c = env.generate_revision(util.rev_id(), None, refresh=True) - d = env.generate_revision(util.rev_id(), None, refresh=True) - e = env.generate_revision(util.rev_id(), None, refresh=True) + a = env.generate_revision(util.rev_id(), '->a', refresh=True) + b = env.generate_revision(util.rev_id(), 'a->b', refresh=True) + c = env.generate_revision(util.rev_id(), 'b->c', refresh=True) + d = env.generate_revision(util.rev_id(), 'c->d', refresh=True) + e = env.generate_revision(util.rev_id(), 'd->e', refresh=True) def teardown(): clear_staging_env() @@ -25,17 +25,17 @@ def test_upgrade_path(): eq_( env._upgrade_revs(e.revision, c.revision), [ - (d.module.upgrade, c.revision, d.revision), - (e.module.upgrade, d.revision, e.revision), + (d.module.upgrade, c.revision, d.revision, d.doc), + (e.module.upgrade, d.revision, e.revision, e.doc), ] ) eq_( env._upgrade_revs(c.revision, None), [ - (a.module.upgrade, None, a.revision), - (b.module.upgrade, a.revision, b.revision), - (c.module.upgrade, b.revision, c.revision), + (a.module.upgrade, None, a.revision, a.doc), + (b.module.upgrade, a.revision, b.revision, b.doc), + (c.module.upgrade, b.revision, c.revision, c.doc), ] ) @@ -43,24 +43,24 @@ def test_relative_upgrade_path(): eq_( env._upgrade_revs("+2", a.revision), [ - (b.module.upgrade, a.revision, b.revision), - (c.module.upgrade, b.revision, c.revision), + (b.module.upgrade, a.revision, b.revision, b.doc), + (c.module.upgrade, b.revision, c.revision, c.doc), ] ) eq_( env._upgrade_revs("+1", a.revision), [ - (b.module.upgrade, a.revision, b.revision), + (b.module.upgrade, a.revision, b.revision, b.doc), ] ) eq_( env._upgrade_revs("+3", b.revision), [ - (c.module.upgrade, b.revision, c.revision), - (d.module.upgrade, c.revision, d.revision), - (e.module.upgrade, d.revision, e.revision), + (c.module.upgrade, b.revision, c.revision, c.doc), + (d.module.upgrade, c.revision, d.revision, d.doc), + (e.module.upgrade, d.revision, e.revision, e.doc), ] ) @@ -82,17 +82,17 @@ def test_downgrade_path(): eq_( env._downgrade_revs(c.revision, e.revision), [ - (e.module.downgrade, e.revision, e.down_revision), - (d.module.downgrade, d.revision, d.down_revision), + (e.module.downgrade, e.revision, e.down_revision, e.doc), + (d.module.downgrade, d.revision, d.down_revision, d.doc), ] ) eq_( env._downgrade_revs(None, c.revision), [ - (c.module.downgrade, c.revision, c.down_revision), - (b.module.downgrade, b.revision, b.down_revision), - (a.module.downgrade, a.revision, a.down_revision), + (c.module.downgrade, c.revision, c.down_revision, c.doc), + (b.module.downgrade, b.revision, b.down_revision, b.doc), + (a.module.downgrade, a.revision, a.down_revision, a.doc), ] ) @@ -100,16 +100,16 @@ def test_relative_downgrade_path(): eq_( env._downgrade_revs("-1", c.revision), [ - (c.module.downgrade, c.revision, c.down_revision), + (c.module.downgrade, c.revision, c.down_revision, c.doc), ] ) eq_( env._downgrade_revs("-3", e.revision), [ - (e.module.downgrade, e.revision, e.down_revision), - (d.module.downgrade, d.revision, d.down_revision), - (c.module.downgrade, c.revision, c.down_revision), + (e.module.downgrade, e.revision, e.down_revision, e.doc), + (d.module.downgrade, d.revision, d.down_revision, d.doc), + (c.module.downgrade, c.revision, c.down_revision, c.doc), ] )