* a :func:`sqlalchemy.sql.expression.update`,
:func:`sqlalchemy.sql.expression.insert`,
or :func:`sqlalchemy.sql.expression.delete` construct.
- * Pretty much anything that's "executable" as described
- in :ref:`sqlexpression_toplevel`.
+ * Any "executable" described in SQLAlchemy Core documentation,
+ noting that no result set is returned.
.. note:: when passing a plain string, the statement is coerced into
a :func:`sqlalchemy.sql.expression.text` construct. This construct
* a :func:`sqlalchemy.sql.expression.update`,
:func:`sqlalchemy.sql.expression.insert`,
or :func:`sqlalchemy.sql.expression.delete` construct.
- * Pretty much anything that's "executable" as described
- in :ref:`sqlexpression_toplevel`.
+ * Any "executable" described in SQLAlchemy Core documentation,
+ noting that no result set is returned.
.. note:: when passing a plain string, the statement is coerced into
a :func:`sqlalchemy.sql.expression.text` construct. This construct
* a :func:`sqlalchemy.sql.expression.update`,
:func:`sqlalchemy.sql.expression.insert`,
or :func:`sqlalchemy.sql.expression.delete` construct.
- * Pretty much anything that's "executable" as described
- in :ref:`sqlexpression_toplevel`.
+ * Any "executable" described in SQLAlchemy Core documentation,
+ noting that no result set is returned.
.. note:: when passing a plain string, the statement is coerced into
a :func:`sqlalchemy.sql.expression.text` construct. This construct
In online mode, this is an instance of
:class:`sqlalchemy.engine.Connection`, and is suitable
for ad-hoc execution of any kind of usage described
- in :ref:`sqlexpression_toplevel` as well as
+ in SQLAlchemy Core documentation as well as
for usage with the :meth:`sqlalchemy.schema.Table.create`
and :meth:`sqlalchemy.schema.MetaData.create_all` methods
of :class:`~sqlalchemy.schema.Table`,
==========
.. changelog::
- :version: 1.10.5
+ :version: 1.11.0
:include_notes_from: unreleased
.. changelog::
.. change::
- :tags: changed, autogenerate
+ :tags: bug, autogenerate
:tickets: 1178
- Don't modify the metadata server default when comparing it in the
- autogenerate process.
- This impacts the value passes to user provided functions passed in
- :paramref:`.EnvironmentContext.configure.compare_server_default`
- and third party dialect that implement a custom ``compare_server_default``.
+ Modified the autogenerate implementation for comparing "server default"
+ values from user-defined metadata to not apply any quoting to the value
+ before comparing it to the server-reported default, except for within
+ dialect-specific routines as needed. This change will affect the format of
+ the server default as passed to the
+ :paramref:`.EnvironmentContext.configure.compare_server_default` hook, as
+ well as for third party dialects that implement a custom
+ ``compare_server_default`` hook in their alembic impl, to be passed "as is"
+ and not including additional quoting. Custom implementations which rely
+ on this quoting should adjust their approach based on observed formatting.
:tags: usecase, asyncio
:tickets: 1231
- Added :meth:`.Operations.run_async` to the operation module to allow
- running async functions in the ``upgrade`` or ``downgrade`` migration
- function when running alembic using an async dialect.
- This function will receive as first argument an
+ Added :meth:`.AbstractOperations.run_async` to the operation module to
+ allow running async functions in the ``upgrade`` or ``downgrade`` migration
+ function when running alembic using an async dialect. This function will
+ receive as first argument an
:class:`~sqlalchemy.ext.asyncio.AsyncConnection` sharing the transaction
used in the migration context.
:tags: bug, batch
:tickets: 1237
- Added placeholder classes for ``Computed`` and ``Identity`` when older 1.x
- SQLAlchemy versions are in use, namely prior to SQLAlchemy 1.3.11 when the
- ``Computed`` construct was introduced. Previously these were set to None,
- however this could cause issues with certain codepaths that were using
- ``isinstance()`` such as one within "batch mode".
+ Added placeholder classes for :class:`~.sqla.Computed` and
+ :class:`~.sqla.Identity` when older 1.x SQLAlchemy versions are in use,
+ namely prior to SQLAlchemy 1.3.11 when the :class:`~.sqla.Computed`
+ construct was introduced. Previously these were set to None, however this
+ could cause issues with certain codepaths that were using ``isinstance()``
+ such as one within "batch mode".