Revisions of python-alembic
Ana Guerrero (anag+factory)
accepted
request 1225089
from
Dirk Mueller (dirkmueller)
(revision 82)
- update to el_1_14_0: * **[usecase] [runtime]** Added a new hook to the `DefaultImpl` `DefaultImpl.version_table_impl()`. This allows third party dialects to define the exact structure of the alembic_version table, to include use cases where the table requires special directives and/or additional columns so that it may function correctly on a particular backend.
Ana Guerrero (anag+factory)
accepted
request 1204393
from
Dirk Mueller (dirkmueller)
(revision 81)
- update to 1.13.3: * Render `if_exists` and `if_not_exists` parameters in `CreateTableOp`, `CreateIndexOp`, `DropTableOp` and `DropIndexOp` in an autogenerate context. * Enhance `version_locations` parsing to handle paths containing newlines. * Added support for `Operations.create_table.if_not_exists` and `Operations.drop_table.if_exists`, adding similar functionality to render IF [NOT] EXISTS for table operations in a similar way as with indexes. - update to 1.13.2:
Dominique Leuenberger (dimstar_suse)
accepted
request 1198069
from
Dirk Mueller (dirkmueller)
(revision 80)
Ana Guerrero (anag+factory)
accepted
request 1135249
from
Dirk Mueller (dirkmueller)
(revision 78)
- update to 1.13.1: * Fixed :class:`.Rewriter` so that more than two instances could be chained together correctly, also allowing multiple ``process_revision_directives`` callables to be chained. * Fixed issue where the method :meth:`.EnvironmentContext.get_x_argument` using the :paramref:`.EnvironmentContext.get_x_argument.as_dictionary` parameter would fail if an argument key were passed on the command line as a name alone, that is, without an equal sign ``=`` or a value. Behavior is repaired where this condition is detected and will return a blank string for the given key, consistent with the behavior where the ``=`` sign is present and no value. * Fixed issue where the "unique" flag of an ``Index`` would not be maintained when generating downgrade migrations. * Fixed bug in versioning model where a downgrade across a revision with two down revisions with one down revision depending on the other, would produce an erroneous state in the alembic_version table, making upgrades impossible without manually repairing the table. * Updated pep-484 typing to pass mypy "strict" mode, however including per-module qualifications for specific typing elements not yet complete. * This allows us to catch specific typing issues that have been ongoing such as import symbols not properly exported.
Ana Guerrero (anag+factory)
accepted
request 1133430
from
Dirk Mueller (dirkmueller)
(revision 77)
- update to 1.13.0: * Fixed issue where the ``alembic check`` command did not function correctly with upgrade structures that have multiple, top-level elements, as are generated from the "multi-env" environment template. * Updated logic introduced in :ticket:`151` to allow ``if_exists`` and ``if_not_exists`` on index operations also on SQLAlchemy 1.4 series. Previously this feature was mistakenly requiring the 2.0 series. * Replaced ``python-dateutil`` with the standard library module zoneinfo. * Alembic 1.13 now supports Python 3.8 and above. * Fixed autogenerate issue where ``create_table_comment()`` and ``drop_table_comment()`` rendering in a batch table modify would include the "table" and "schema" arguments, which are not accepted in batch as these are already part of the top level block. * Additional fixes to PostgreSQL expression index compare feature. The compare now correctly accommodates casts and differences in spacing. * Added detection logic for operation clauses inside the expression, skipping the compare of these expressions. * To accommodate these changes the logic for the comparison of the indexes and unique constraints was moved to the dialect implementation, allowing greater flexibility.
Ana Guerrero (anag+factory)
accepted
request 1125874
from
Dirk Mueller (dirkmueller)
(revision 76)
- update to 1.12.1: * Fixed regression caused by :ticket:`879` released in 1.7.0 where the ".info" dictionary of ``Table`` would not render in autogenerate create table statements. This can be useful for custom create table DDL rendering schemes so it is restored. * Improved typing in the :paramref:`.EnvironmentContext.configure.process_revision_dir ectives` callable to better indicate that the passed-in type is :class:`.MigrationScript`, not the :class:`.MigrationOperation` base class, and added typing to the example at :ref:`cookbook_no_empty_migrations` to illustrate. * Repaired :class:`.ExecuteSQLOp` so that it can participate in "diff" operations; while this object is typically not present in a reflected operation stream, custom hooks may be adding this construct where it needs to have the correct ``to_diff_tuple()`` method. * Improved the ``op.execute()`` method to correctly accept the * ``Executable`` type that is the same which is used in SQLAlchemy ``Connection.execute()``. * Improve typing of the revision parameter in various command functions. * Fixed autogen render issue where expressions inside of indexes for PG need to be double-parenthesized, meaning a single parens must be present within the generated ``text()`` construct. * Alembic now accommodates for Sequence and Identity that support dialect kwargs. This is a change that will be added to SQLAlchemy v2.1.
Dominique Leuenberger (dimstar_suse)
accepted
request 1113553
from
Matej Cepl (mcepl)
(revision 75)
- Clean up the SPEC file - update to 1.12.0 * Added new feature to the "code formatter" function which allows standalone executable tools to be run against code, without going through the Python interpreter. Known as the `exec` runner, it complements the existing `console_scripts` runner by allowing non-Python tools such as `ruff` to be used. * Change the default value of `.EnvironmentContext.configure.compare_type` to `True`. As Alembic's autogenerate for types was dramatically improved in version 1.4 released in 2020, the type comparison feature is now much more reliable so is now enabled by default. * Fixed issue where the `ForeignKeyConstraint.match` parameter would not be rendered in autogenerated migrations. * Fixed issue where the `revision_environment` directive in `alembic.ini` was ignored by the `alembic merge` command, leading to issues when other configurational elements depend upon `env.py` being invoked within the command. * Added support for `op.drop_constraint()` to support PostgreSQL `ExcludeConstraint` objects, as well as other constraint-like objects that may be present in third party dialects, by resolving the `type_` parameter to be `None` for this case. Autogenerate has also been enhanced to exclude the `type_` parameter from rendering within this command when `type_` is `None`.
Dominique Leuenberger (dimstar_suse)
accepted
request 1103719
from
Dirk Mueller (dirkmueller)
(revision 74)
- update to 1.11.2: * Added typing to the default script mako templates. * Added support in autogenerate for NULLS NOT DISTINCT in * the PostgreSQL dialect. * Fixed format string logged when running a post write hook * Added parameters if_exists and if_not_exists for index operations.
Dominique Leuenberger (dimstar_suse)
accepted
request 1102506
from
Factory Maintainer (factory-maintainer)
(revision 73)
Automatic submission by obs-autosubmit
Dominique Leuenberger (dimstar_suse)
accepted
request 1092850
from
Dirk Mueller (dirkmueller)
(revision 72)
- tag sle15 build for new python
Dominique Leuenberger (dimstar_suse)
accepted
request 1085181
from
Dirk Mueller (dirkmueller)
(revision 71)
- update to 1.10.4: * Added support for autogenerate comparison of indexes on PostgreSQL which include SQL sort option, such as ``ASC`` or ``NULLS FIRST``. * Fixed various typing issues observed with pyright, including issues involving the combination of :class:`.Function` and :meth:`.MigrationContext.begin_transaction`. * Fixed error raised by alembic when running autogenerate after removing a function based index. * Fixed regression where Alembic would not run with older SQLAlchemy 1.3 versions prior to 1.3.24 due to a missing symbol. Workarounds have been applied for older 1.3 versions. * Fixed issue regarding PostgreSQL :class:`.ExcludeConstraint`, where constraint elements which made use of :func:`.literal_column` could not be rendered for autogenerate. Additionally, using SQLAlchemy 2.0.5 or greater, :func:`.text()` constructs are also supported within PostgreSQL :class:`.ExcludeConstraint` objects for autogenerate render. * Fixed issue in index detection where autogenerate change detection would consider indexes with the same columns but with different order as equal, while in general they are not equivalent in how a database will use them. * Recursive traversal of revision files in a particular revision directory is now supported, by indicating ``recursive_version_locations = true`` in alembic.ini. * Fixed issue where indexes on SQLite which include SQL expressions would not compare correctly, generating false positives under autogenerate. These indexes are now skipped, generating a warning, in the same way that expression-based indexes on PostgreSQL are skipped and
Dominique Leuenberger (dimstar_suse)
accepted
request 1064239
from
Dirk Mueller (dirkmueller)
(revision 70)
- update to 1.9.3: * Fixed issue where rendering of user-defined types that then went onto use the .with_variant() method would fail to render, if using SQLAlchemy 2.0's version of variants.
Dominique Leuenberger (dimstar_suse)
accepted
request 1061744
from
Dirk Mueller (dirkmueller)
(revision 69)
- update to 1.9.2: * Fixed typing definitions for :meth:`.EnvironmentContext.get_x_argument`. Typing stubs are now generated for overloaded proxied methods such as * Fixed regression caused by :ticket:`1145` where the string transformations applied to server defaults caused expressions such as ``(getdate())`` to no longer compare as equivalent on SQL Server, others.
Dominique Leuenberger (dimstar_suse)
accepted
request 1058079
from
Factory Maintainer (factory-maintainer)
(revision 68)
Automatic submission by obs-autosubmit
Dominique Leuenberger (dimstar_suse)
accepted
request 1056257
from
Markéta Machová (mcalabkova)
(revision 67)
Dominique Leuenberger (dimstar_suse)
accepted
request 992110
from
Dirk Mueller (dirkmueller)
(revision 66)
- update to 1.8.1: * Fixed bug where the SQLite implementation of :meth:`.Operations.rename_table` would render an explicit schema name for both the old and new table name, which while is the standard ALTER syntax, is not accepted by SQLite's syntax which doesn't support a rename across schemas. In particular, the syntax issue would prevent batch mode from working for SQLite databases that made use of attached databases (which are treated as "schemas" in SQLAlchemy). * Added an error raise for the condition where :meth:`.Operations.batch_alter_table` is used in ``--sql`` mode, where the operation requires table reflection, as is the case when running against SQLite without giving it a fixed ``Table`` object. Previously the operation would fail with an internal error. To get a "move and copy" batch operation as a SQL script without connecting to a database, a ``Table`` object should be passed to the :paramref:`.Operations.batch_alter_table.copy_from` parameter so that reflection may be skipped.
Dominique Leuenberger (dimstar_suse)
accepted
request 965089
from
Dirk Mueller (dirkmueller)
(revision 64)
- update to 1.7.7: * Fixed issue where using :meth:`.Operations.create_table` in conjunction with a :class:`.CheckConstraint` that referred to table-bound :class:`.Column` objects rather than string expressions would be added to the parent table potentially multiple times, resulting in an incorrect DDL sequence. Pull request courtesy Nicolas CANIART. * The ``logging.fileConfig()`` line in ``env.py`` templates, which is used to setup Python logging for the migration run, is now conditional on :attr:`.Config.config_file_name` not being ``None``. Otherwise, the line is skipped as there is no default logging configuration present. * Fixed bug where an :meth:`.Operations.alter_column` operation would change a "NOT NULL" column to "NULL" by emitting an ALTER COLUMN statement that did not specify "NOT NULL". (In the absence of "NOT NULL" T-SQL was implicitly assuming "NULL"). An :meth:`.Operations.alter_column` operation that specifies :paramref:`.Operations.alter_column.type` should also specify include either :paramref:`.Operations.alter_column.nullable` or :paramref:`.Operations.alter_column.existing_nullable` to inform Alembic as to whether the emitted DDL should include "NULL" or "NOT NULL"; a warning is now emitted if this is missing under this scenario.
Dominique Leuenberger (dimstar_suse)
accepted
request 954392
from
Dirk Mueller (dirkmueller)
(revision 63)
- update to 1.7.6: * Add a new command alembic ensure_version, which will ensure that the Alembic version table is present in the target database, but does not alter its contents. * Fixed regression where usage of a with_variant() datatype in conjunction with the existing_type option of op.alter_column() under batch mode would lead to an internal exception. * Implemented support for recognizing and rendering SQLAlchemy “variant” types going forward into SQLAlchemy 2.0, where the architecture of “variant” datatypes will be changing. * Added a rule to the MySQL impl so that the translation between JSON / LONGTEXT is accommodated by autogenerate, treating LONGTEXT from the server as equivalent to an existing JSON in the model. * Removed a warning raised by SQLAlchemy when dropping constraints on MSSQL regarding statement caching.
Displaying revisions 1 - 20 of 82