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)
.. 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
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_
)
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):