From: Mike Bayer Date: Fri, 9 Jan 2026 21:18:30 +0000 (-0500) Subject: - 1.18.0 X-Git-Tag: rel_1_18_0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76e575b9c397b0a734358010fad58c60f3e2e3f2;p=thirdparty%2Fsqlalchemy%2Falembic.git - 1.18.0 --- diff --git a/docs/build/changelog.rst b/docs/build/changelog.rst index 9c5f5376..c05448c9 100644 --- a/docs/build/changelog.rst +++ b/docs/build/changelog.rst @@ -5,7 +5,98 @@ Changelog .. changelog:: :version: 1.18.0 - :include_notes_from: unreleased + :released: January 9, 2026 + + .. change:: + :tags: bug, postgresql + :tickets: 1507 + + Fixed issue where PostgreSQL sequence defaults on non-primary key columns + were incorrectly detected as changed on every autogenerate run. Server + default comparison logic is adjusted to filter out the ``::regclass`` + expression added by the server which interferes with the comparison. + + .. change:: + :tags: feature, operations + :tickets: 1737 + + When alembic is run in "verbose" mode, alembic now logs a message to + indicate from which file is used to load the configuration. + + .. change:: + :tags: bug, mssql + :tickets: 1755 + + Implemented DDL for column comment add/update/delete when using the + :paramref:`.Operations.alter_column.comment` parameter with + :meth:`.Operations.alter_column` on Microsoft SQL Server. Previously, + these functions were not implemented for SQL Server and would raise + ``UnsupportedCompilationError``. + + .. change:: + :tags: feature, autogenerate + :tickets: 1771 + + Autogenerate reflection sweeps now use the "bulk" inspector methods + introduced in SQLAlchemy 2.0, which for selected dialects including + PostgreSQL and Oracle use batched queries to reflect whole collections of + tables using O(1) queries rather than O(N). + + .. change:: + :tags: usecase, environment + :tickets: 1774 + + The ``file_template`` configuration option now supports directory paths, + allowing migration files to be organized into subdirectories. When using + directory separators in ``file_template`` (e.g., + ``%(year)d/%(month).2d/%(day).2d_%(rev)s_%(slug)s``), Alembic will + automatically create the necessary directory structure. The + ``recursive_version_locations`` setting must be set to ``true`` when using + this feature in order for the revision files to be located for subsequent + commands. + + .. change:: + :tags: usecase + + Avoid deprecation warning in add/drop constraint added in SQLAlchemy 2.1. + Ensure that alembic is compatible with the changes added in + https://github.com/sqlalchemy/sqlalchemy/issues/13006 + by explicitly setting ``isolate_from_table=True`` when running with + SQLAlchemy 2.1 or greater. + + .. change:: + :tags: feature, autogenerate + + Release 1.18.0 introduces a plugin system that allows for automatic + loading of third-party extensions as well as configurable autogenerate + compare functionality on a per-environment basis. + + The :class:`.Plugin` class provides a common interface for extensions that + register handlers among Alembic's existing extension points such as + :meth:`.Operations.register_operation` and + :meth:`.Operations.implementation_for`. A new interface for registering + autogenerate comparison handlers, + :meth:`.Plugin.add_autogenerate_comparator`, provides for autogenerate + compare functionality that may be custom-configured on a per-environment + basis using the new + :paramref:`.EnvironmentContext.configure.autogenerate_plugins` parameter. + + The change does not impact well known Alembic add-ons such as + ``alembic-utils``, which continue to work as before; however, such add-ons + have the option to provide plugin entrypoints going forward. + + As part of this change, Alembic's autogenerate compare functionality is + reorganized into a series of internal plugins under the + ``alembic.autogenerate`` namespace, which may be individually or + collectively identified for inclusion and/or exclusion within the + :meth:`.EnvironmentContext.configure` call using a new parameter + :paramref:`.EnvironmentContext.configure.autogenerate_plugins`. This + parameter is also where third party comparison plugins may also be + indicated. + + See :ref:`alembic.plugins.toplevel` for complete documentation on + the new :class:`.Plugin` class as well as autogenerate-specific usage + instructions. .. changelog:: :version: 1.17.2 diff --git a/docs/build/conf.py b/docs/build/conf.py index 77b64a52..46a93eb3 100644 --- a/docs/build/conf.py +++ b/docs/build/conf.py @@ -101,8 +101,8 @@ author = "Mike Bayer" # The short X.Y version. version = alembic.__version__ # The full version, including alpha/beta/rc tags. -release = "1.17.2" -release_date = "November 14, 2025" +release = "1.18.0" +release_date = "January 9, 2026" # The language for content autogenerated by Sphinx. Refer to documentation diff --git a/docs/build/unreleased/1507.rst b/docs/build/unreleased/1507.rst deleted file mode 100644 index 15ecef16..00000000 --- a/docs/build/unreleased/1507.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: bug, postgresql - :tickets: 1507 - - Fixed issue where PostgreSQL sequence defaults on non-primary key columns - were incorrectly detected as changed on every autogenerate run. Server - default comparison logic is adjusted to filter out the ``::regclass`` - expression added by the server which interferes with the comparison. \ No newline at end of file diff --git a/docs/build/unreleased/1737.rst b/docs/build/unreleased/1737.rst deleted file mode 100644 index 84c4f980..00000000 --- a/docs/build/unreleased/1737.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. change:: - :tags: feature, operations - :tickets: 1737 - - When alembic is run in "verbose" mode, alembic now logs a message to - indicate from which file is used to load the configuration. diff --git a/docs/build/unreleased/1755.rst b/docs/build/unreleased/1755.rst deleted file mode 100644 index c6048934..00000000 --- a/docs/build/unreleased/1755.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. change:: - :tags: bug, mssql - :tickets: 1755 - - Implemented DDL for column comment add/update/delete when using the - :paramref:`.Operations.alter_column.comment` parameter with - :meth:`.Operations.alter_column` on Microsoft SQL Server. Previously, - these functions were not implemented for SQL Server and would raise - ``UnsupportedCompilationError``. \ No newline at end of file diff --git a/docs/build/unreleased/1771.rst b/docs/build/unreleased/1771.rst deleted file mode 100644 index 829dac91..00000000 --- a/docs/build/unreleased/1771.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: feature, autogenerate - :tickets: 1771 - - Autogenerate reflection sweeps now use the "bulk" inspector methods - introduced in SQLAlchemy 2.0, which for selected dialects including - PostgreSQL and Oracle use batched queries to reflect whole collections of - tables using O(1) queries rather than O(N). diff --git a/docs/build/unreleased/1774.rst b/docs/build/unreleased/1774.rst deleted file mode 100644 index acf89afa..00000000 --- a/docs/build/unreleased/1774.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. change:: - :tags: usecase, environment - :tickets: 1774 - - The ``file_template`` configuration option now supports directory paths, - allowing migration files to be organized into subdirectories. When using - directory separators in ``file_template`` (e.g., - ``%(year)d/%(month).2d/%(day).2d_%(rev)s_%(slug)s``), Alembic will - automatically create the necessary directory structure. The - ``recursive_version_locations`` setting must be set to ``true`` when using - this feature in order for the revision files to be located for subsequent - commands. diff --git a/docs/build/unreleased/constraint_deprecation.rst b/docs/build/unreleased/constraint_deprecation.rst deleted file mode 100644 index c156dcf5..00000000 --- a/docs/build/unreleased/constraint_deprecation.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. change:: - :tags: usecase - - Avoid deprecation warning in add/drop constraint added in SQLAlchemy 2.1. - Ensure that alembic is compatible with the changes added in - https://github.com/sqlalchemy/sqlalchemy/issues/13006 - by explicitly setting ``isolate_from_table=True`` when running with - SQLAlchemy 2.1 or greater. diff --git a/docs/build/unreleased/plugins.rst b/docs/build/unreleased/plugins.rst deleted file mode 100644 index efd4bfea..00000000 --- a/docs/build/unreleased/plugins.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. change:: - :tags: feature, autogenerate - - Release 1.18.0 introduces a plugin system that allows for automatic - loading of third-party extensions as well as configurable autogenerate - compare functionality on a per-environment basis. - - The :class:`.Plugin` class provides a common interface for extensions that - register handlers among Alembic's existing extension points such as - :meth:`.Operations.register_operation` and - :meth:`.Operations.implementation_for`. A new interface for registering - autogenerate comparison handlers, - :meth:`.Plugin.add_autogenerate_comparator`, provides for autogenerate - compare functionality that may be custom-configured on a per-environment - basis using the new - :paramref:`.EnvironmentContext.configure.autogenerate_plugins` parameter. - - The change does not impact well known Alembic add-ons such as - ``alembic-utils``, which continue to work as before; however, such add-ons - have the option to provide plugin entrypoints going forward. - - As part of this change, Alembic's autogenerate compare functionality is - reorganized into a series of internal plugins under the - ``alembic.autogenerate`` namespace, which may be individually or - collectively identified for inclusion and/or exclusion within the - :meth:`.EnvironmentContext.configure` call using a new parameter - :paramref:`.EnvironmentContext.configure.autogenerate_plugins`. This - parameter is also where third party comparison plugins may also be - indicated. - - See :ref:`alembic.plugins.toplevel` for complete documentation on - the new :class:`.Plugin` class as well as autogenerate-specific usage - instructions.