Skip to content

Commit 76e575b

Browse files
committed
- 1.18.0
1 parent 9400ec8 commit 76e575b

9 files changed

Lines changed: 94 additions & 87 deletions

File tree

docs/build/changelog.rst

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,98 @@ Changelog
55

66
.. changelog::
77
:version: 1.18.0
8-
:include_notes_from: unreleased
8+
:released: January 9, 2026
9+
10+
.. change::
11+
:tags: bug, postgresql
12+
:tickets: 1507
13+
14+
Fixed issue where PostgreSQL sequence defaults on non-primary key columns
15+
were incorrectly detected as changed on every autogenerate run. Server
16+
default comparison logic is adjusted to filter out the ``::regclass``
17+
expression added by the server which interferes with the comparison.
18+
19+
.. change::
20+
:tags: feature, operations
21+
:tickets: 1737
22+
23+
When alembic is run in "verbose" mode, alembic now logs a message to
24+
indicate from which file is used to load the configuration.
25+
26+
.. change::
27+
:tags: bug, mssql
28+
:tickets: 1755
29+
30+
Implemented DDL for column comment add/update/delete when using the
31+
:paramref:`.Operations.alter_column.comment` parameter with
32+
:meth:`.Operations.alter_column` on Microsoft SQL Server. Previously,
33+
these functions were not implemented for SQL Server and would raise
34+
``UnsupportedCompilationError``.
35+
36+
.. change::
37+
:tags: feature, autogenerate
38+
:tickets: 1771
39+
40+
Autogenerate reflection sweeps now use the "bulk" inspector methods
41+
introduced in SQLAlchemy 2.0, which for selected dialects including
42+
PostgreSQL and Oracle use batched queries to reflect whole collections of
43+
tables using O(1) queries rather than O(N).
44+
45+
.. change::
46+
:tags: usecase, environment
47+
:tickets: 1774
48+
49+
The ``file_template`` configuration option now supports directory paths,
50+
allowing migration files to be organized into subdirectories. When using
51+
directory separators in ``file_template`` (e.g.,
52+
``%(year)d/%(month).2d/%(day).2d_%(rev)s_%(slug)s``), Alembic will
53+
automatically create the necessary directory structure. The
54+
``recursive_version_locations`` setting must be set to ``true`` when using
55+
this feature in order for the revision files to be located for subsequent
56+
commands.
57+
58+
.. change::
59+
:tags: usecase
60+
61+
Avoid deprecation warning in add/drop constraint added in SQLAlchemy 2.1.
62+
Ensure that alembic is compatible with the changes added in
63+
https://github.com/sqlalchemy/sqlalchemy/issues/13006
64+
by explicitly setting ``isolate_from_table=True`` when running with
65+
SQLAlchemy 2.1 or greater.
66+
67+
.. change::
68+
:tags: feature, autogenerate
69+
70+
Release 1.18.0 introduces a plugin system that allows for automatic
71+
loading of third-party extensions as well as configurable autogenerate
72+
compare functionality on a per-environment basis.
73+
74+
The :class:`.Plugin` class provides a common interface for extensions that
75+
register handlers among Alembic's existing extension points such as
76+
:meth:`.Operations.register_operation` and
77+
:meth:`.Operations.implementation_for`. A new interface for registering
78+
autogenerate comparison handlers,
79+
:meth:`.Plugin.add_autogenerate_comparator`, provides for autogenerate
80+
compare functionality that may be custom-configured on a per-environment
81+
basis using the new
82+
:paramref:`.EnvironmentContext.configure.autogenerate_plugins` parameter.
83+
84+
The change does not impact well known Alembic add-ons such as
85+
``alembic-utils``, which continue to work as before; however, such add-ons
86+
have the option to provide plugin entrypoints going forward.
87+
88+
As part of this change, Alembic's autogenerate compare functionality is
89+
reorganized into a series of internal plugins under the
90+
``alembic.autogenerate`` namespace, which may be individually or
91+
collectively identified for inclusion and/or exclusion within the
92+
:meth:`.EnvironmentContext.configure` call using a new parameter
93+
:paramref:`.EnvironmentContext.configure.autogenerate_plugins`. This
94+
parameter is also where third party comparison plugins may also be
95+
indicated.
96+
97+
See :ref:`alembic.plugins.toplevel` for complete documentation on
98+
the new :class:`.Plugin` class as well as autogenerate-specific usage
99+
instructions.
9100

10101
.. changelog::
11102
:version: 1.17.2

docs/build/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@
101101
# The short X.Y version.
102102
version = alembic.__version__
103103
# The full version, including alpha/beta/rc tags.
104-
release = "1.17.2"
105-
release_date = "November 14, 2025"
104+
release = "1.18.0"
105+
release_date = "January 9, 2026"
106106

107107

108108
# The language for content autogenerated by Sphinx. Refer to documentation

docs/build/unreleased/1507.rst

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/build/unreleased/1737.rst

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/build/unreleased/1755.rst

Lines changed: 0 additions & 9 deletions
This file was deleted.

docs/build/unreleased/1771.rst

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/build/unreleased/1774.rst

Lines changed: 0 additions & 12 deletions
This file was deleted.

docs/build/unreleased/constraint_deprecation.rst

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/build/unreleased/plugins.rst

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)