]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
- changelog for #266
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 19 Mar 2015 19:51:11 +0000 (15:51 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 19 Mar 2015 19:51:11 +0000 (15:51 -0400)
- use exception fixture
- look directly at context.as_sql as that's where
the "sql mode" is most authoritative
- fixes #266

alembic/autogenerate/api.py
docs/build/changelog.rst
tests/test_autogenerate.py

index 18a44a8dd36ad718702ae1da15b02a20c00ef432..6281a6cea95bf05cfa0ef245bda6568f9f31f5d6 100644 (file)
@@ -106,14 +106,16 @@ def compare_metadata(context, metadata):
      instance.
 
     """
+
+    autogen_context, connection = _autogen_context(context, None)
+
     # as_sql=True is nonsensical here. autogenerate requires a connection
     # it can use to run queries against to get the database schema.
-    if context.opts.get('as_sql', False) is True:
+    if context.as_sql:
         raise util.CommandError(
             "autogenerate can't use as_sql=True as it prevents querying "
             "the database for schema information")
 
-    autogen_context, connection = _autogen_context(context, None)
     diffs = []
 
     object_filters = _get_object_filters(context.opts)
index d7e239e46a9d44a6abde4b1f4fc11b6773c6cc5d..504b73dc529e698fd02753597f5834fa0e3f3364 100644 (file)
@@ -6,6 +6,16 @@ Changelog
 .. changelog::
     :version: 0.7.5
 
+    .. change::
+      :tags: bug, autogenerate
+      :tickets: 266
+      :pullreq: bitbucket:39
+
+      The ``--autogenerate`` option is not valid when used in conjunction
+      with "offline" mode, e.g. ``--sql``.  This now raises a ``CommandError``,
+      rather than failing more deeply later on.  Pull request courtesy
+      Johannes Erdfelt.
+
     .. change::
       :tags: bug, operations, mssql
       :tickets: 284
index 1eeeb9171fc6807958e94f863b6a73b521b8ee6a..e9ffe8bc66468198b088a1189dcbe123602c1b78 100644 (file)
@@ -11,6 +11,7 @@ from alembic import autogenerate
 from alembic.migration import MigrationContext
 from alembic.testing import TestBase
 from alembic.testing import config
+from alembic.testing import assert_raises_message
 from alembic.testing.mock import Mock
 from alembic.testing.env import staging_env, clear_staging_env
 from alembic.testing import eq_
@@ -1358,12 +1359,12 @@ class CompareMetadataTest(ModelOne, AutogenTest, TestBase):
         )
         metadata = self.m2
 
-        try:
-            autogenerate.compare_metadata(context, metadata)
-        except CommandError:
-            pass
-        else:
-            assert False, "unexpected success"
+        assert_raises_message(
+            CommandError,
+            "autogenerate can't use as_sql=True as it prevents "
+            "querying the database for schema information",
+            autogenerate.compare_metadata, context, metadata
+        )
 
 
 class PGCompareMetaData(ModelOne, AutogenTest, TestBase):