]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
Support explicit "base" in --sql mode.
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 21 Sep 2016 15:28:40 +0000 (11:28 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 21 Sep 2016 15:28:40 +0000 (11:28 -0400)
Fix bug where "alembic upgrade base:head --sql" would fail.
Behavior is now equivalent to "alembic upgrade head --sql".

Change-Id: Ic730541c3ce6af01fe892811fd3cc6643e0459a6
Fixes: #388
alembic/__init__.py
alembic/runtime/migration.py
docs/build/changelog.rst
tests/test_command.py

index 94ed06370bff340a1796daf69e0371803b24850f..03a8384ed8612099486222f6638a78db63c53074 100644 (file)
@@ -1,6 +1,6 @@
 from os import path
 
-__version__ = '0.8.8'
+__version__ = '0.8.9'
 
 package_dir = path.abspath(path.dirname(__file__))
 
index 352737ecb74bdda2241fac806d766f5539c14a18..a0b386df44a40e8d01cb0a8b2d1b9f3b4af71df7 100644 (file)
@@ -230,7 +230,9 @@ class MigrationContext(object):
         """
         if self.as_sql:
             start_from_rev = self._start_from_rev
-            if start_from_rev is not None and self.script:
+            if start_from_rev == 'base':
+                start_from_rev = None
+            elif start_from_rev is not None and self.script:
                 start_from_rev = \
                     self.script.get_revision(start_from_rev).revision
 
index 7fdfd620268d41f8543fcdfb200b928205fd9c6d..fef24e5e4121831a4e22788729062ca357727ce6 100644 (file)
@@ -3,6 +3,15 @@
 Changelog
 ==========
 
+.. changelog::
+    :version: 0.8.9
+
+    .. change::
+      :tags: bug, versioning
+
+      Fixed bug where the "base" specifier, as in "base:head", could not
+      be used explicitly when ``--sql`` mode was present.
+
 .. changelog::
     :version: 0.8.8
     :released: September 12, 2016
index d20412d54fc341393be24b484dc1d8bdbf295712..49cdaf2aa08fdeaebed73808a9f586b5ac5067c8 100644 (file)
@@ -434,6 +434,24 @@ class UpgradeDowngradeStampTest(TestBase):
         assert "DROP STEP 2" in buf.getvalue()
         assert "DROP STEP 1" not in buf.getvalue()
 
+    def test_none_to_head_sql(self):
+        with capture_context_buffer() as buf:
+            command.upgrade(self.cfg, "head", sql=True)
+        assert "CREATE TABLE alembic_version" in buf.getvalue()
+        assert "UPDATE alembic_version" in buf.getvalue()
+        assert "CREATE STEP 1" in buf.getvalue()
+        assert "CREATE STEP 2" in buf.getvalue()
+        assert "CREATE STEP 3" in buf.getvalue()
+
+    def test_base_to_head_sql(self):
+        with capture_context_buffer() as buf:
+            command.upgrade(self.cfg, "base:head", sql=True)
+        assert "CREATE TABLE alembic_version" in buf.getvalue()
+        assert "UPDATE alembic_version" in buf.getvalue()
+        assert "CREATE STEP 1" in buf.getvalue()
+        assert "CREATE STEP 2" in buf.getvalue()
+        assert "CREATE STEP 3" in buf.getvalue()
+
     def test_sql_stamp_from_rev(self):
         with capture_context_buffer() as buf:
             command.stamp(self.cfg, "%s:head" % self.a, sql=True)