2090 lines
111 KiB
Plaintext
2090 lines
111 KiB
Plaintext
|
-------------------------------------------------------------------
|
|||
|
Tue Nov 14 12:40:19 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Sep 25 22:38:26 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
|||
|
|
|||
|
- Clean up the SPEC file
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Sep 25 14:53:14 UTC 2023 - Ondřej Súkup <mimi.vx@gmail.com>
|
|||
|
|
|||
|
- 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`.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Aug 13 19:32:21 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jul 29 21:17:43 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- update to 1.11.1:
|
|||
|
* As Alembic 1.11.0 is considered a major release (Alembic does
|
|||
|
not use semver, nor does its parent project SQLAlchemy;
|
|||
|
this has been `clarified <versioning_scheme>` in the documentation),
|
|||
|
* :ticket:`1130` modified calling signatures for most
|
|||
|
operations to consider all optional keyword parameters to
|
|||
|
be keyword-only arguments, to match what was always documented
|
|||
|
and generated by autogenerate. However, two of these
|
|||
|
changes were identified as possibly problematic without a
|
|||
|
more formal deprecation warning being emitted which were the
|
|||
|
``table_name`` parameter to :meth:`.Operations.drop_index`,
|
|||
|
which was generated positionally by autogenerate prior to
|
|||
|
version 0.6.3 released in 2014, and
|
|||
|
``type_`` in :meth:`.Operations.drop_constraint` and
|
|||
|
:meth:`.BatchOperations.drop_constraint`, which was
|
|||
|
documented positionally in one example in the batch documentation.
|
|||
|
* Fixed typing use of :class:`~sqlalchemy.schema.Column` and
|
|||
|
other generic SQLAlchemy classes.
|
|||
|
* Restored the output type of :meth:`.Config.get_section` to
|
|||
|
include ``Dict[str, str]`` as a potential return type, which
|
|||
|
had been changed to immutable ``Mapping[str, str]``.
|
|||
|
When a section is returned and the default is not used,
|
|||
|
a mutable dictionary is returned.
|
|||
|
* 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".
|
|||
|
* Correctly pass previously ignored arguments ``insert_before``
|
|||
|
and ``insert_after`` in ``batch_alter_column``
|
|||
|
* Argument signatures of Alembic operations now enforce
|
|||
|
keyword-only arguments as passed as keyword and not
|
|||
|
positionally, such as Operations.create_table.schema
|
|||
|
.Operations.add_column.type_, etc.
|
|||
|
* Fix autogenerate issue with PostgreSQL
|
|||
|
:class:`.ExcludeConstraint` that included sqlalchemy
|
|||
|
functions. The function text was previously rendered
|
|||
|
as a plain string without surrounding with ``text()``.
|
|||
|
* Fixed regression caused by :ticket:`1166` released in version
|
|||
|
1.10.0 which caused MySQL unique constraints with multiple
|
|||
|
columns to not compare correctly within autogenerate,
|
|||
|
due to different sorting rules on unique constraints vs.
|
|||
|
indexes, which in MySQL are shared constructs.
|
|||
|
* Repaired the return signatures for :class:`.Operations` that
|
|||
|
mostly return ``None``, and were erroneously referring to
|
|||
|
``Optional[Table]`` in many cases.
|
|||
|
* 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_defau
|
|||
|
lt` 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.
|
|||
|
* 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Tue Jun 13 11:35:16 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- tag sle15 build for new python
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri May 5 22:12:29 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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
|
|||
|
generate warnings when SQLAlchemy 1.x installations are
|
|||
|
in use. Note that reflection of
|
|||
|
SQLite expression-based indexes continues to not yet be
|
|||
|
supported under SQLAlchemy 2.0, even though PostgreSQL
|
|||
|
expression-based indexes have now been implemented.
|
|||
|
* Properly escape constraint name on SQL Server when dropping
|
|||
|
a column while specifying ``mssql_drop_default=True`` or
|
|||
|
``mssql_drop_check=True`` or ``mssql_drop_foreign_key=True``.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Feb 10 12:36:15 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jan 28 14:31:09 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Jan 5 20:33:31 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- update to 1.9.1:
|
|||
|
.. change::
|
|||
|
:tickets: 1145
|
|||
|
Fixed issue where server default compare would not work for string defaults
|
|||
|
that contained backslashes, due to mis-rendering of these values when
|
|||
|
comparing their contents.
|
|||
|
.. change::
|
|||
|
:tags: bug, oracle
|
|||
|
Implemented basic server default comparison for the Oracle backend;
|
|||
|
previously, Oracle's formatting of reflected defaults prevented any
|
|||
|
matches from occurring.
|
|||
|
.. change::
|
|||
|
:tags: bug, sqlite
|
|||
|
Adjusted SQLite's compare server default implementation to better handle
|
|||
|
defaults with or without parens around them, from both the reflected and
|
|||
|
the local metadata side.
|
|||
|
.. change::
|
|||
|
:tags: bug, mssql
|
|||
|
Adjusted SQL Server's compare server default implementation to better
|
|||
|
handle defaults with or without parens around them, from both the reflected
|
|||
|
and the local metadata side.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Jan 5 19:06:37 UTC 2023 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
|||
|
|
|||
|
- Update to 1.9.0:
|
|||
|
feature
|
|||
|
* Added new Alembic command alembic check. This performs the widely requested feature of running an “autogenerate” comparison
|
|||
|
between the current database and the MetaData that’s currently set up for autogenerate, returning an error code if the two do not match,
|
|||
|
based on current autogenerate settings. Pull request courtesy Nathan Louie.
|
|||
|
See also Running Alembic Check to test for new upgrade operations
|
|||
|
References: #724
|
|||
|
bug
|
|||
|
* Fixed issue in tox.ini file where changes in the tox 4.0 series to the format of “passenv” caused tox to not function correctly,
|
|||
|
in particular raising an error as of tox 4.0.6.
|
|||
|
* Fixed typing issue where revision.process_revision_directives was not fully typed; additionally ensured all Callable and Dict arguments
|
|||
|
to EnvironmentContext.configure() include parameters in the typing declaration.
|
|||
|
Additionally updated the codebase for Mypy 0.990 compliance.
|
|||
|
References: #1110
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Aug 1 21:38:44 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jun 4 20:32:32 UTC 2022 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.8.0:
|
|||
|
* changed
|
|||
|
+ [changed] [installation] Alembic 1.8 now supports Python 3.7 and
|
|||
|
above. References: #1025
|
|||
|
+ [changed] [environment] The “Pylons” environment template has
|
|||
|
been removed as of Alembic 1.8. This template was based on the
|
|||
|
very old pre-Pyramid Pylons web framework which has been long
|
|||
|
superseded by Pyramid. References: #987
|
|||
|
* feature
|
|||
|
+ [feature] [typing] PEP 484 typing annotations have been added to
|
|||
|
the env.py and revision template files within migration
|
|||
|
templates. Pull request by Nikita Sobolev. References: #764
|
|||
|
* usecase
|
|||
|
+ [usecase] [operations] The op.drop_table() operation directive
|
|||
|
will now trigger the before_drop() and after_drop() DDL event
|
|||
|
hooks at the table level, which is similar to how the
|
|||
|
before_create() and after_create() hooks are triggered by the
|
|||
|
op.create_table() directive. Note that as op.drop_table()
|
|||
|
accepts only a table name and optional schema name, the Table
|
|||
|
object received by the event will not have any information
|
|||
|
within it other than the table name and schema name.
|
|||
|
References: #1037
|
|||
|
+ [usecase] [commands] Added new token epoch to the file_template
|
|||
|
option, which will populate the integer epoch as determined by
|
|||
|
int(create_date.timestamp()). Pull request courtesy Caio
|
|||
|
Carvalho. References: #1027
|
|||
|
* bug
|
|||
|
+ [bug] [revisioning] Fixed issue where a downgrade using a
|
|||
|
relative revision would fail in case of multiple branches with a
|
|||
|
single effectively head due to interdependencies between
|
|||
|
revisions. References: #1026
|
|||
|
+ [bug] [batch] Fixed issue in batch mode where CREATE INDEX would
|
|||
|
not use a new column name in the case of a column rename.
|
|||
|
References: #1034
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Mar 26 20:27:41 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Feb 14 21:37:49 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- 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.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Dec 6 17:51:23 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- update to 1.7.5:
|
|||
|
* Adjustments to the test suite to accommodate for error message change
|
|||
|
in newer SQLAlchemy
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Nov 6 11:28:24 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
|||
|
|
|||
|
- Update requirements
|
|||
|
- Remove unused python-alembic-rpmlintrc
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Oct 17 22:28:50 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- update to 1.7.4:
|
|||
|
* Fixed a regression that prevented the use of post write hooks on python
|
|||
|
version lower than 3.9
|
|||
|
* Added missing attributes from context stubs.
|
|||
|
* Fixed issue where registration of custom ops was prone to failure due to
|
|||
|
the registration process running exec() on generated code that as of the
|
|||
|
1.7 series includes pep-484 annotations, which in the case of end user code
|
|||
|
would result in name resolution errors when the exec occurs
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Sep 5 16:08:27 UTC 2021 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- specfile:
|
|||
|
* skip python 2 builds
|
|||
|
* require importlib-resources
|
|||
|
|
|||
|
- update to version 1.7.1:
|
|||
|
* Corrected "universal wheel" directive in setup.cfg so that
|
|||
|
building a wheel does not target Python 2. The PyPi files index
|
|||
|
for 1.7.0 was corrected manually. Pull request courtesy layday.
|
|||
|
* Fixed issue in generated .pyi files where default values for
|
|||
|
"Optional" arguments were missing, thereby causing mypy to
|
|||
|
consider them as required.
|
|||
|
* Fixed regression in batch mode due to :ticket:`883` where the
|
|||
|
"auto" mode of batch would fail to accommodate any additional
|
|||
|
migration directives beyond encountering an "add_column()"
|
|||
|
directive, due to a mis-application of the conditional logic that
|
|||
|
was added as part of this change, leading to "recreate" mode not
|
|||
|
being used in cases where it is required for SQLite such as for
|
|||
|
unique constraints.
|
|||
|
|
|||
|
- changes from version 1.7.0:
|
|||
|
* Fixed regression due to :ticket:`803` where the ".info" and
|
|||
|
".comment" attributes of "Table" would be lost inside of the
|
|||
|
:class:`.DropTableOp` class, which when "reversed" into a
|
|||
|
:class:`.CreateTableOp` would then have lost these elements. Pull
|
|||
|
request courtesy Nicolas CANIART.
|
|||
|
* Enhance "version_locations" parsing to handle paths containing
|
|||
|
spaces. The new configuration option "version_path_separator"
|
|||
|
specifies the character to use when splitting the
|
|||
|
"version_locations" string. The default for new configurations is
|
|||
|
"version_path_separator = os", which will use "os.pathsep" (e.g.,
|
|||
|
";" on Windows).
|
|||
|
* Alembic 1.7 now supports Python 3.6 and above; support for prior
|
|||
|
versions including Python 2.7 has been dropped.
|
|||
|
* Batch "auto" mode will now select for "recreate" if the
|
|||
|
"add_column()" operation is used on SQLite, and the column itself
|
|||
|
meets the criteria for SQLite where ADD COLUMN is not allowed, in
|
|||
|
this case a functional or parenthesized SQL expression or a
|
|||
|
"Computed" (i.e. generated) column.
|
|||
|
* Make the "python-dateutil" library an optional dependency. This
|
|||
|
library is only required if the "timezone" option is used in the
|
|||
|
Alembic configuration. An extra require named "tz" is available
|
|||
|
with "pip install alembic[tz]" to install it.
|
|||
|
* Re-implemented the "python-editor" dependency as a small internal
|
|||
|
function to avoid the need for external dependencies.
|
|||
|
* Named CHECK constraints are now supported by batch mode, and will
|
|||
|
automatically be part of the recreated table assuming they are
|
|||
|
named. They also can be explicitly dropped using
|
|||
|
"op.drop_constraint()". For "unnamed" CHECK constraints, these are
|
|||
|
still skipped as they cannot be distinguished from the CHECK
|
|||
|
constraints that are generated by the "Boolean" and "Enum"
|
|||
|
datatypes. Note that this change may require adjustments to
|
|||
|
migrations that drop or rename columns which feature an associated
|
|||
|
named check constraint, such that an additional
|
|||
|
"op.drop_constraint()" directive should be added for that named
|
|||
|
constraint as there will no longer be an associated column for it;
|
|||
|
for the "Boolean" and "Enum" datatypes, an "existing_type" keyword
|
|||
|
may be passed to "BatchOperations.drop_constraint" as well.
|
|||
|
* The dependency on "pkg_resources" which is part of "setuptools"
|
|||
|
has been removed, so there is no longer any runtime dependency on
|
|||
|
"setuptools". The functionality has been replaced with
|
|||
|
"importlib.metadata" and "importlib.resources" which are both part
|
|||
|
of Python std.lib, or via pypy dependency "importlib-metadata" for
|
|||
|
Python version < 3.8 and "importlib-resources" for Python version
|
|||
|
< 3.9 (while importlib.resources was added to Python in 3.7, it
|
|||
|
did not include the "files" API until 3.9).
|
|||
|
* Created a "test suite" similar to the one for SQLAlchemy, allowing
|
|||
|
developers of third-party dialects to test their code against a
|
|||
|
set of Alembic tests that have been specially selected to exercise
|
|||
|
back-end database operations. At the time of release, third-party
|
|||
|
dialects that have adopted the Alembic test suite to verify
|
|||
|
compatibility include `CockroachDB
|
|||
|
<https://pypi.org/project/sqlalchemy-cockroachdb/>`_ and `SAP ASE
|
|||
|
(Sybase) <https://pypi.org/project/sqlalchemy-sybase/>`_.
|
|||
|
* Fixed issue where usage of the PostgreSQL "postgresql_include"
|
|||
|
option within a :meth:`.Operations.create_index` would raise a
|
|||
|
KeyError, as the additional column(s) need to be added to the
|
|||
|
table object used by the construct internally. The issue is
|
|||
|
equivalent to the SQL Server issue fixed in :ticket:`513`. Pull
|
|||
|
request courtesy Steven Bronson.
|
|||
|
* pep-484 type annotations have been added throughout the library.
|
|||
|
Additionally, stub .pyi files have been added for the
|
|||
|
"dynamically" generated Alembic modules "alembic.op" and
|
|||
|
"alembic.config", which include complete function signatures and
|
|||
|
docstrings, so that the functions in these namespaces will have
|
|||
|
both IDE support (vscode, pycharm, etc) as well as support for
|
|||
|
typing tools like Mypy. The files themselves are statically
|
|||
|
generated from their source functions within the source tree.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Jun 6 13:39:34 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
|||
|
|
|||
|
- update to 1.6.5:
|
|||
|
* feature
|
|||
|
+ [feature] [autogenerate] Fix the documentation regarding the
|
|||
|
default command-line argument position of the revision script
|
|||
|
filename within the post-write hook arguments. Implement a
|
|||
|
REVISION_SCRIPT_FILENAME token, enabling the position to be
|
|||
|
changed. Switch from str.split() to shlex.split() for more
|
|||
|
robust command-line argument parsing.
|
|||
|
+ [feature] Implement a .cwd (current working directory) suboption
|
|||
|
for post-write hooks (of type console_scripts). This is useful
|
|||
|
for tools like pre-commit, which rely on the working directory
|
|||
|
to locate the necessary config files. Add pre-commit as an
|
|||
|
example to the documentation. Minor change: rename some
|
|||
|
variables from ticket #819 to improve readability.
|
|||
|
* bug
|
|||
|
+ [bug] [autogenerate] Refactored the implementation of
|
|||
|
MigrateOperation constructs such as CreateIndexOp,
|
|||
|
CreateTableOp, etc. so that they no longer rely upon maintaining
|
|||
|
a persistent version of each schema object internally; instead,
|
|||
|
the state variables of each operation object will be used to
|
|||
|
produce the corresponding construct when the operation is
|
|||
|
invoked. The rationale is so that environments which m
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri May 14 01:18:46 UTC 2021 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.6.2:
|
|||
|
* bug
|
|||
|
+ [bug] [regression] [versioning] Fixed additional regression
|
|||
|
nearly the same as that of #838 just released in 1.6.1 but
|
|||
|
within a slightly different codepath, where “alembic downgrade
|
|||
|
head” (or equivalent) would fail instead of iterating no
|
|||
|
revisions.
|
|||
|
|
|||
|
- changes from version 1.6.1:
|
|||
|
* bug
|
|||
|
+ [bug] [regression] [versioning] Fixed regression in new
|
|||
|
revisioning traversal where “alembic downgrade base” would fail
|
|||
|
if the database itself were clean and unversioned; additionally
|
|||
|
repairs the case where downgrade would fail if attempting to
|
|||
|
downgrade to the current head that is already present.
|
|||
|
|
|||
|
- changes from version 1.6.0:
|
|||
|
* feature
|
|||
|
+ [feature] [autogenerate] Fix the documentation regarding the
|
|||
|
default command-line argument position of the revision script
|
|||
|
filename within the post-write hook arguments. Implement a
|
|||
|
REVISION_SCRIPT_FILENAME token, enabling the position to be
|
|||
|
changed. Switch from str.split() to shlex.split() for more
|
|||
|
robust command-line argument parsing.
|
|||
|
+ [feature] Implement a .cwd (current working directory) suboption
|
|||
|
for post-write hooks (of type console_scripts). This is useful
|
|||
|
for tools like pre-commit, which rely on the working directory
|
|||
|
to locate the necessary config files. Add pre-commit as an
|
|||
|
example to the documentation. Minor change: rename some
|
|||
|
variables from ticket #819 to improve readability.
|
|||
|
* bug
|
|||
|
+ [bug] [autogenerate] Refactored the implementation of
|
|||
|
MigrateOperation constructs such as CreateIndexOp,
|
|||
|
CreateTableOp, etc. so that they no longer rely upon maintaining
|
|||
|
a persistent version of each schema object internally; instead,
|
|||
|
the state variables of each operation object will be used to
|
|||
|
produce the corresponding construct when the operation is
|
|||
|
invoked. The rationale is so that environments which make use of
|
|||
|
operation-manipulation schemes such as those those discussed in
|
|||
|
Fine-Grained Autogenerate Generation with Rewriters are better
|
|||
|
supported, allowing end-user code to manipulate the public
|
|||
|
attributes of these objects which will then be expressed in the
|
|||
|
final output, an example is
|
|||
|
some_create_index_op.kw["postgresql_concurrently"] = True.
|
|||
|
|
|||
|
Previously, these objects when generated from autogenerate would
|
|||
|
typically hold onto the original, reflected element internally
|
|||
|
without honoring the other state variables of each construct,
|
|||
|
preventing the public API from working.
|
|||
|
+ [bug] [environment] Fixed regression caused by the SQLAlchemy
|
|||
|
1.4/2.0 compatibility switch where calling .rollback() or
|
|||
|
.commit() explicitly within the context.begin_transaction()
|
|||
|
context manager would cause it to fail when the block ended, as
|
|||
|
it did not expect that the transaction was manually closed.
|
|||
|
+ [bug] [autogenerate] Improved the rendering of op.add_column()
|
|||
|
operations when adding multiple columns to an existing table, so
|
|||
|
that the order of these statements matches the order in which
|
|||
|
the columns were declared in the application’s table
|
|||
|
metadata. Previously the added columns were being sorted
|
|||
|
alphabetically.
|
|||
|
+ [bug] [versioning] The algorithm used for calculating
|
|||
|
downgrades/upgrades/iterating revisions has been rewritten, to
|
|||
|
resolve ongoing issues of branches not being handled
|
|||
|
consistently particularly within downgrade operations, as well
|
|||
|
as for overall clarity and maintainability. This change includes
|
|||
|
that a deprecation warning is emitted if an ambiguous command
|
|||
|
such as “downgrade -1” when multiple heads are present is given.
|
|||
|
|
|||
|
In particular, the change implements a long-requested use case
|
|||
|
of allowing downgrades of a single branch to a branchpoint.
|
|||
|
|
|||
|
Huge thanks to Simon Bowly for their impressive efforts in
|
|||
|
successfully tackling this very difficult problem.
|
|||
|
+ [bug] [batch] Added missing batch_op.create_table_comment(),
|
|||
|
batch_op.drop_table_comment() directives to batch ops.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Apr 7 05:16:16 UTC 2021 - Steve Kowalik <steven.kowalik@suse.com>
|
|||
|
|
|||
|
- Update to 1.5.8:
|
|||
|
* Fixed regression caused by SQLAlchemy 1.4 where the "alembic current"
|
|||
|
command would fail due to changes in the ``URL`` object.
|
|||
|
* Add async template to Alembic to bootstrap environments that use
|
|||
|
async DBAPI. Updated the cookbook to include a migration guide
|
|||
|
on how to adapt an existing enviroment for use with DBAPI drivers.
|
|||
|
* Fixed bug in versioning model where a downgrade across a revision with a
|
|||
|
dependency on another branch, yet an ancestor is also dependent on that
|
|||
|
branch, would produce an erroneous state in the alembic_version table,
|
|||
|
making upgrades impossible without manually repairing the table.
|
|||
|
* Changed the default ordering of "CREATE" and "DROP" statements indexes and
|
|||
|
unique constraints within the autogenerate process, so that for example in
|
|||
|
an upgrade() operation, a particular index or constraint that is to be
|
|||
|
replaced such as for a casing convention change will not produce any naming
|
|||
|
conflicts.
|
|||
|
* Fixed issue where autogenerate rendering of ``op.alter_column()`` would
|
|||
|
fail to include MySQL ``existing_nullable=False`` if the column were part
|
|||
|
of a primary key constraint within the table metadata.
|
|||
|
* Added support for rendering of "identity" elements on
|
|||
|
:class:`.Column` objects, supported in SQLAlchemy via
|
|||
|
the :class:`.Identity` element introduced in version 1.4.
|
|||
|
* Adding columns with identity is supported on PostgreSQL,
|
|||
|
MSSQL and Oracle. Changing the identity options or removing
|
|||
|
it is supported only on PostgreSQL and Oracle.
|
|||
|
* To accommodate SQLAlchemy 1.4 and 2.0, the migration model now no longer
|
|||
|
assumes that the SQLAlchemy Connection will autocommit an individual
|
|||
|
operation.
|
|||
|
* Modified the ``add_column()`` operation such that the ``Column`` object in
|
|||
|
use is shallow copied to a new instance if that ``Column`` is already
|
|||
|
attached to a ``table()`` or ``Table``.
|
|||
|
* Added rendering for the ``Table.prefixes`` element to autogenerate so that
|
|||
|
the rendered Python code includes these directives.
|
|||
|
* Alembic 1.5.0 now supports **Python 2.7 and Python 3.6 and above**, as well
|
|||
|
as **SQLAlchemy 1.3.0 and above**.
|
|||
|
* Add ``__main__.py`` file to alembic package to support invocation
|
|||
|
with ``python -m alembic``.
|
|||
|
* Removed deprecated ``--head_only`` option to the ``alembic current``
|
|||
|
command
|
|||
|
- Drop pytest_depr_from_parent.patch, pytest plugin no longer used.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Oct 8 16:07:43 UTC 2020 - Matej Cepl <mcepl@suse.com>
|
|||
|
|
|||
|
- Add pytest_depr_from_parent.patch to fix FTBGS with pytest 6.*
|
|||
|
(gh#sqlalchemy/sqlalchemy#5635).
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Sep 19 15:30:06 UTC 2020 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.4.3:
|
|||
|
* bug
|
|||
|
+ Added support to drop named CHECK constraints that are specified
|
|||
|
as part of a column, rather than table wide. Previously, only
|
|||
|
constraints associated with the table were considered.
|
|||
|
References: #711
|
|||
|
+ Fixed issue where the MySQL dialect would not correctly render
|
|||
|
the server default of a column in an alter operation, if the
|
|||
|
operation were programmatically generated from an autogenerate
|
|||
|
pass as it would not accommodate for the full structure of the
|
|||
|
DefaultClause construct. References: #736
|
|||
|
+ Fixed issue where the CAST applied to a JSON column when copying
|
|||
|
a SQLite table during batch mode would cause the data to be
|
|||
|
lost, as SQLite’s CAST with JSON appears to convert the data to
|
|||
|
the value “0”. The CAST is now skipped in a dialect-specific
|
|||
|
manner, including for JSON columns on SQLite. Pull request
|
|||
|
courtesy Sebastián Ramírez. References: #697
|
|||
|
+ The alembic current command no longer creates an alembic_version
|
|||
|
table in the database if one does not exist already, returning
|
|||
|
no version as the current version. This allows checking for
|
|||
|
migrations in parallel without introducing race conditions. Pull
|
|||
|
request courtesy Nikolay Edigaryev. References: #694
|
|||
|
+ Fixed issue where columns in a foreign-key referenced table
|
|||
|
would be replaced with null-type columns during a batch
|
|||
|
operation; while this did not generally have any side effects,
|
|||
|
it could theoretically impact a batch operation that also
|
|||
|
targets that table directly and also would interfere with future
|
|||
|
changes to the .append_column() method to disallow implicit
|
|||
|
replacement of columns.
|
|||
|
+ Fixed issue where the mssql_drop_foreign_key=True flag on
|
|||
|
op.drop_column would lead to incorrect syntax error due to a
|
|||
|
typo in the SQL emitted, same typo was present in the test as
|
|||
|
well so it was not detected. Pull request courtesy Oleg
|
|||
|
Shigorin. References: #716
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Mar 28 16:27:08 UTC 2020 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.4.2:
|
|||
|
* bug
|
|||
|
+ Fixed an issue that prevented the test suite from running with
|
|||
|
the recently released py.test 5.4.0. References: #668
|
|||
|
+ Fixed more false-positive failures produced by the new “compare
|
|||
|
type” logic first added in #605, particularly impacting MySQL
|
|||
|
string types regarding flags such as “charset” and “collation”.
|
|||
|
References: #671
|
|||
|
+ Fixed issue in Oracle backend where a table RENAME with a
|
|||
|
schema-qualified name would include the schema in the “to”
|
|||
|
portion, which is rejected by Oracle. References: #670
|
|||
|
* usecase
|
|||
|
+ Adjusted autogen comparison to accommodate for backends that
|
|||
|
support computed column reflection, dependent on SQLAlchemy
|
|||
|
version 1.3.16 or higher. This emits a warning if the SQL
|
|||
|
expression inside of a Computed value changes between the
|
|||
|
metadata and the database, as these expressions can’t be changed
|
|||
|
without dropping and recreating the column. References: #669
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Mar 6 21:49:43 UTC 2020 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.4.1:
|
|||
|
* Fixed regression caused by the new “type comparison” logic
|
|||
|
introduced in 1.4 as part of #605 where comparisons of MySQL
|
|||
|
“unsigned integer” datatypes would produce false positives, as the
|
|||
|
regular expression logic was not correctly parsing the “unsigned”
|
|||
|
token when MySQL’s default display width would be returned by the
|
|||
|
database. Pull request courtesy Paul Becotte. References: #661
|
|||
|
* Error message for “path doesn’t exist” when loading up script
|
|||
|
environment now displays the absolute path. Pull request courtesy
|
|||
|
Rowan Hart. References: #663
|
|||
|
* Fixed regression in 1.4.0 due to #647 where unique constraint
|
|||
|
comparison with mixed case constraint names while not using a
|
|||
|
naming convention would produce false positives during
|
|||
|
autogenerate.References: #654
|
|||
|
* The check for matched rowcount when the alembic_version table is
|
|||
|
updated or deleted from is now conditional based on whether or not
|
|||
|
the dialect supports the concept of “rowcount” for UPDATE or
|
|||
|
DELETE rows matched. Some third party dialects do not support this
|
|||
|
concept. Pull request courtesy Ke Zhu.
|
|||
|
* Fixed long-standing bug where an inline column CHECK constraint
|
|||
|
would not be rendered within an “ADD COLUMN” operation. The DDL
|
|||
|
compiler is now consulted for inline constraints within the
|
|||
|
Operations.add_column() method as is done for regular CREATE TABLE
|
|||
|
operations. References: #655
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Feb 8 20:39:12 UTC 2020 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.4.0:
|
|||
|
* feature
|
|||
|
+ Added new parameters BatchOperations.add_column.insert_before,
|
|||
|
BatchOperations.add_column.insert_after which provide for
|
|||
|
establishing the specific position in which a new column should
|
|||
|
be placed. Also added
|
|||
|
Operations.batch_alter_table.partial_reordering which allows the
|
|||
|
complete set of columns to be reordered when the new table is
|
|||
|
created. Both operations apply only to when batch mode is
|
|||
|
recreating the whole table using recreate="always". Thanks to
|
|||
|
Marcin Szymanski for assistance with the implementation.
|
|||
|
References: #640
|
|||
|
* bug
|
|||
|
+ Adjusted the unique constraint comparison logic in a similar
|
|||
|
manner as that of #421 did for indexes in order to take into
|
|||
|
account SQLAlchemy’s own truncation of long constraint names
|
|||
|
when a naming convention is in use. Without this step, a name
|
|||
|
that is truncated by SQLAlchemy based on a unique constraint
|
|||
|
naming convention or hardcoded name will not compare properly.
|
|||
|
References: #647
|
|||
|
+ A major rework of the “type comparison” logic is in place which
|
|||
|
changes the entire approach by which column datatypes are
|
|||
|
compared. Types are now compared based on the DDL string
|
|||
|
generated by the metadata type vs. the datatype reflected from
|
|||
|
the database. This means we compare types based on what would
|
|||
|
actually render and additionally if elements of the types change
|
|||
|
like string length, those changes are detected as well. False
|
|||
|
positives like those generated between SQLAlchemy Boolean and
|
|||
|
MySQL TINYINT should also be resolved. Thanks very much to Paul
|
|||
|
Becotte for lots of hard work and patience on this one. See
|
|||
|
also: What does Autogenerate Detect (and what does it not
|
|||
|
detect?) - updated comments on type comparison References: #605
|
|||
|
* usecase
|
|||
|
+ Moved the use of the __file__ attribute at the base of the
|
|||
|
Alembic package into the one place that it is specifically
|
|||
|
needed, which is when the config attempts to locate the template
|
|||
|
directory. This helps to allow Alembic to be fully importable in
|
|||
|
environments that are using Python memory-only import
|
|||
|
schemes. Pull request courtesy layday. References: #648
|
|||
|
* misc
|
|||
|
+ The internal inspection routines no longer use SQLAlchemy’s
|
|||
|
Inspector.from_engine() method, which is expected to be
|
|||
|
deprecated in 1.4. The inspect() function is now used.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Jan 26 21:21:06 UTC 2020 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- specfile:
|
|||
|
* update copyright year
|
|||
|
|
|||
|
- update to version 1.3.3:
|
|||
|
* bug
|
|||
|
+ Fixed issue where COMMENT directives for PostgreSQL failed to
|
|||
|
correctly include an explicit schema name, as well as correct
|
|||
|
quoting rules for schema, table, and column names. Pull request
|
|||
|
courtesy Matthew Sills. References: #637
|
|||
|
* usecase
|
|||
|
+ Added support for rendering of “computed” elements on Column
|
|||
|
objects, supported in SQLAlchemy via the new Computed element
|
|||
|
introduced in version 1.3.11. Pull request courtesy Federico
|
|||
|
Caselli.
|
|||
|
Note that there is currently no support for ALTER COLUMN to add,
|
|||
|
remove, or modify the “GENERATED ALWAYS AS” element from a
|
|||
|
column; at least for PostgreSQL, it does not seem to be
|
|||
|
supported by the database. Additionally, SQLAlchemy does not
|
|||
|
currently reliably reflect the “GENERATED ALWAYS AS” phrase from
|
|||
|
an existing column, so there is also no autogenerate support for
|
|||
|
addition or removal of the Computed element to or from an
|
|||
|
existing column, there is only support for adding new columns
|
|||
|
that include the Computed element. In the case that the Computed
|
|||
|
element is removed from the Column object in the table metadata,
|
|||
|
PostgreSQL and Oracle currently reflect the “GENERATED ALWAYS
|
|||
|
AS” expression as the “server default” which will produce an op
|
|||
|
that tries to drop the element as a default. References: #624
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Dec 29 21:12:46 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.3.2:
|
|||
|
* bug
|
|||
|
+ [bug] [api] [autogenerate]Fixed regression introduced by #579
|
|||
|
where server default rendering functions began to require a
|
|||
|
dialect implementation, however the render_python_code()
|
|||
|
convenience function did not include one, thus causing the
|
|||
|
function to fail when used in a server default context. The
|
|||
|
function now accepts a migration context argument and also
|
|||
|
creates one against the default dialect if one is not
|
|||
|
provided.References: #635
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Nov 16 16:37:12 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.3.1:
|
|||
|
* bug
|
|||
|
+ [bug] [mssql] Fixed bug in MSSQL dialect where the drop
|
|||
|
constraint execution steps used to remove server default or
|
|||
|
implicit foreign key constraint failed to take into account the
|
|||
|
schema name of the target table. References: #621
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Nov 14 12:41:03 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
|||
|
|
|||
|
- Require full python interpreter when building
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Nov 9 14:46:13 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.3.0:
|
|||
|
* feature
|
|||
|
+ Added support for ALEMBIC_CONFIG environment variable, refers to
|
|||
|
the location of the alembic configuration script in lieu of
|
|||
|
using the -c command line option. References: #608
|
|||
|
* bug
|
|||
|
+ Fixed bug in new Variant autogenerate where the order of the
|
|||
|
arguments to Variant were mistakenly reversed. References: #131
|
|||
|
* misc
|
|||
|
+ Some internal modifications have been made to how the names of
|
|||
|
indexes and unique constraints work to make use of new functions
|
|||
|
added in SQLAlchemy 1.4, so that SQLAlchemy has more flexibility
|
|||
|
over how naming conventions may be applied to these objects.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Sep 25 03:19:44 UTC 2019 - Thomas Bechtold <tbechtold@suse.com>
|
|||
|
|
|||
|
- update to 1.2.1:
|
|||
|
* bugs
|
|||
|
+ Reverted the name change of the “revisions” argument to
|
|||
|
command.stamp() to “revision” as apparently applications are
|
|||
|
calling upon this argument as a keyword name. Pull request
|
|||
|
courtesy Thomas Bechtold. Special translations are also added
|
|||
|
to the command line interface so that it is still known
|
|||
|
as “revisions” in the CLI.
|
|||
|
References: #601
|
|||
|
+ Removed the “test requirements” from “setup.py test”, as
|
|||
|
this command now only emits a removal error in any case
|
|||
|
and these requirements are unused.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Sep 21 19:10:16 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.2.0:
|
|||
|
* feature
|
|||
|
+ Added new --purge flag to the alembic stamp command, which will
|
|||
|
unconditionally erase the version table before stamping
|
|||
|
anything. This is useful for development where non-existent
|
|||
|
version identifiers might be left within the table. Additionally,
|
|||
|
alembic.stamp now supports a list of revision identifiers, which
|
|||
|
are intended to allow setting up muliple heads at once. Overall
|
|||
|
handling of version identifiers within the alembic.stamp command
|
|||
|
has been improved with many new tests and use cases added.
|
|||
|
References: #473
|
|||
|
+ Added new feature MigrationContext.autocommit_block(), a special
|
|||
|
directive which will provide for a non-transactional block inside
|
|||
|
of a migration script. The feature requres that: the database
|
|||
|
driver (e.g. DBAPI) supports the AUTOCOMMIT isolation mode. The
|
|||
|
directive also necessarily needs to COMMIT the existing
|
|||
|
transaction in progress in order to enter autocommit mode. See
|
|||
|
also MigrationContext.autocommit_block() References: #123
|
|||
|
+ Added “post write hooks” to revision generation. These allow
|
|||
|
custom logic to run after a revision Python script is generated,
|
|||
|
typically for the purpose of running code formatters such as
|
|||
|
“Black” or “autopep8”, but may be used for any arbitrary
|
|||
|
post-render hook as well, including custom Python functions or
|
|||
|
scripts. The hooks are enabled by providing a [post_write_hooks]
|
|||
|
section in the alembic.ini file. A single hook is provided which
|
|||
|
runs an arbitrary Python executable on the newly generated
|
|||
|
revision script, which can be configured to run code formatters
|
|||
|
such as Black; full examples are included in the documentation.
|
|||
|
See also Applying Post Processing and Python Code Formatters to
|
|||
|
Generated Revisions References: #307
|
|||
|
+ Added new flag --package to alembic init. For environments where
|
|||
|
the Alembic migration files and such are within the package tree
|
|||
|
and importable as modules, this flag can be specified which will
|
|||
|
add the additional __init__.py files in the version location and
|
|||
|
the environment location. References: #463
|
|||
|
* bug
|
|||
|
+ Improved the Python rendering of a series of migration
|
|||
|
operations such that a single “pass” is rendered for a
|
|||
|
UpgradeOps or DowngradeOps based on if no lines of Python code
|
|||
|
actually rendered under the operation, rather than whether or
|
|||
|
not sub-directives exist. Removed extra “pass” lines that would
|
|||
|
generate from the ModifyTableOps directive so that these aren’t
|
|||
|
duplicated under operation rewriting scenarios. References:
|
|||
|
#550
|
|||
|
+ Fixed bug where rendering of comment text for table-level
|
|||
|
comments within Operations.create_table_comment() and
|
|||
|
Operations.drop_table_comment() was not properly quote-escaped
|
|||
|
within rendered Python code for autogenerate. References: #549
|
|||
|
+ Modified the logic of the Rewriter object such that it keeps a
|
|||
|
memoization of which directives it has processed, so that it can
|
|||
|
ensure it processes a particular directive only once, and
|
|||
|
additionally fixed Rewriter so that it functions correctly for
|
|||
|
multiple-pass autogenerate schemes, such as the one illustrated
|
|||
|
in the “multidb” template. By tracking which directives have
|
|||
|
been processed, a multiple-pass scheme which calls upon the
|
|||
|
Rewriter multiple times for the same structure as elements are
|
|||
|
added can work without running duplicate operations on the same
|
|||
|
elements more than once. References: #505
|
|||
|
* usecase
|
|||
|
+ Added autogenerate support for Column objects that have
|
|||
|
dialect-specific **kwargs, support first added in SQLAlchemy
|
|||
|
1.3. This includes SQLite “on conflict” as well as options used
|
|||
|
by some third party dialects. References: #518
|
|||
|
+ Added rendering for SQLAlchemy Variant datatypes, which render
|
|||
|
as the base type plus one or more .with_variant() method calls.
|
|||
|
References: #131
|
|||
|
+ Made the command interface revision lookup behavior more strict
|
|||
|
in that an Alembic revision number is only resolved based on a
|
|||
|
partial match rules if it has at least four characters, to
|
|||
|
prevent simple typographical issues from inadvertently running
|
|||
|
migrations. References: #534
|
|||
|
* misc
|
|||
|
+ Python 3.4 support is dropped, as the upstream tooling (pip,
|
|||
|
mysqlclient) etc are already dropping support for Python 3.4,
|
|||
|
which itself is no longer maintained.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Aug 31 04:36:49 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- specfile:
|
|||
|
* increased min version of SQLAlechmy
|
|||
|
|
|||
|
- update to version 1.1.0:
|
|||
|
* bug
|
|||
|
+ Fixed bug where the double-percent logic applied to some
|
|||
|
dialects such as psycopg2 would be rendered in --sql mode, by
|
|||
|
allowing dialect options to be passed through to the dialect
|
|||
|
used to generate SQL and then providing paramstyle="named" so
|
|||
|
that percent signs need not be doubled. For users having this
|
|||
|
issue, existing env.py scripts need to add
|
|||
|
dialect_opts={"paramstyle": "named"} to their offline
|
|||
|
context.configure(). See the alembic/templates/generic/env.py
|
|||
|
template for an example. References: #562
|
|||
|
+ Fixed use of the deprecated “imp” module, which is used to
|
|||
|
detect pep3147 availability as well as to locate .pyc files,
|
|||
|
which started emitting deprecation warnings during the test
|
|||
|
suite. The warnings were not being emitted earlier during the
|
|||
|
test suite, the change is possibly due to changes in py.test
|
|||
|
itself but this is not clear. The check for pep3147 is set to
|
|||
|
True for any Python version 3.5 or greater now and importlib is
|
|||
|
used when available. Note that some dependencies such as
|
|||
|
distutils may still be emitting this warning. Tests are adjusted
|
|||
|
to accommodate for dependencies that emit the warning as well.
|
|||
|
+ Fixed issue where emitting a change of column name for MySQL did
|
|||
|
not preserve the column comment, even if it were specified as
|
|||
|
existing_comment. References: #594
|
|||
|
+ Removed the “python setup.py test” feature in favor of a
|
|||
|
straight run of “tox”. Per Pypa / pytest developers, “setup.py”
|
|||
|
commands are in general headed towards deprecation in favor of
|
|||
|
tox. The tox.ini script has been updated such that running “tox”
|
|||
|
with no arguments will perform a single run of the test suite
|
|||
|
against the default installed Python interpreter. See also
|
|||
|
https://github.com/pypa/setuptools/issues/1684
|
|||
|
https://github.com/pytest-dev/pytest/issues/5534
|
|||
|
References: #592
|
|||
|
* usecase
|
|||
|
+ The “alembic init” command will now proceed if the target
|
|||
|
directory exists as long as it’s still empty. Previously, it
|
|||
|
would not proceed if the directory existed. The new behavior is
|
|||
|
modeled from what git does, to accommodate for container or
|
|||
|
other deployments where an Alembic target directory may need to
|
|||
|
be already mounted instead of being created with alembic
|
|||
|
init. Pull request courtesy Aviskar KC. References: #571
|
|||
|
* misc
|
|||
|
+ Alembic 1.1 bumps the minimum version of SQLAlchemy to 1.1. As
|
|||
|
was the case before, Python requirements remain at Python 2.7,
|
|||
|
or in the 3.x series Python 3.4.
|
|||
|
+ The test suite for Alembic now makes use of SQLAlchemy’s testing
|
|||
|
framework directly. Previously, Alembic had its own version of
|
|||
|
this framework that was mostly copied from that of SQLAlchemy to
|
|||
|
enable testing with older SQLAlchemy versions. The majority of
|
|||
|
this code is now removed so that both projects can leverage
|
|||
|
improvements from a common testing framework.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jul 6 21:27:43 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.0.11:
|
|||
|
* bug
|
|||
|
+ SQLite server default reflection will ensure parenthesis are
|
|||
|
surrounding a column default expression that is detected as
|
|||
|
being a non-constant expression, such as a datetime() default,
|
|||
|
to accommodate for the requirement that SQL expressions have to
|
|||
|
be parenthesized when being sent as DDL. Parenthesis are not
|
|||
|
added to constant expressions to allow for maximum
|
|||
|
cross-compatibility with other dialects and existing test suites
|
|||
|
(such as Alembic’s), which necessarily entails scanning the
|
|||
|
expression to eliminate for constant numeric and string
|
|||
|
values. The logic is added to the two “reflection->DDL round
|
|||
|
trip” paths which are currently autogenerate and batch
|
|||
|
migration. Within autogenerate, the logic is on the rendering
|
|||
|
side, whereas in batch the logic is installed as a column
|
|||
|
reflection hook. References: #579
|
|||
|
+ Improved SQLite server default comparison to accommodate for a
|
|||
|
text() construct that added parenthesis directly vs. a construct
|
|||
|
that relied upon the SQLAlchemy SQLite dialect to render the
|
|||
|
parenthesis, as well as improved support for various forms of
|
|||
|
constant expressions such as values that are quoted
|
|||
|
vs. non-quoted. References: #579
|
|||
|
+ Fixed bug where the “literal_binds” flag was not being set when
|
|||
|
autogenerate would create a server default value, meaning server
|
|||
|
default comparisons would fail for functions that contained
|
|||
|
literal values.
|
|||
|
+ Added support for MySQL “DROP CHECK”, which is added as of MySQL
|
|||
|
8.0.16, separate from MariaDB’s “DROP CONSTRAINT” for CHECK
|
|||
|
constraints. The MySQL Alembic implementation now checks for
|
|||
|
“MariaDB” in server_version_info to decide which one to use.
|
|||
|
References: #554
|
|||
|
+ Fixed issue where MySQL databases need to use CHANGE COLUMN when
|
|||
|
altering a server default of CURRENT_TIMESTAMP, NOW() and
|
|||
|
probably other functions that are only usable with
|
|||
|
DATETIME/TIMESTAMP columns. While MariaDB supports both CHANGE
|
|||
|
and ALTER COLUMN in this case, MySQL databases only support
|
|||
|
CHANGE. So the new logic is that if the server default change is
|
|||
|
against a DateTime-oriented column, the CHANGE format is used
|
|||
|
unconditionally, as in the vast majority of cases the server
|
|||
|
default is to be CURRENT_TIMESTAMP which may also be potentially
|
|||
|
bundled with an “ON UPDATE CURRENT_TIMESTAMP” directive, which
|
|||
|
SQLAlchemy does not currently support as a distinct field. The
|
|||
|
fix addiionally improves the server default comparison logic
|
|||
|
when the “ON UPDATE” clause is present and there are parenthesis
|
|||
|
to be adjusted for as is the case on some MariaDB versions.
|
|||
|
References: #564
|
|||
|
+ Warnings emitted by Alembic now include a default stack level of
|
|||
|
2, and in some cases it’s set to 3, in order to help warnings
|
|||
|
indicate more closely where they are originating from. Pull
|
|||
|
request courtesy Ash Berlin-Taylor.
|
|||
|
+ Replaced the Python compatbility routines for getargspec() with
|
|||
|
a fully vendored version based on getfullargspec() from Python
|
|||
|
3.3. Originally, Python was emitting deprecation warnings for
|
|||
|
this function in Python 3.8 alphas. While this change was
|
|||
|
reverted, it was observed that Python 3 implementations for
|
|||
|
getfullargspec() are an order of magnitude slower as of the 3.4
|
|||
|
series where it was rewritten against Signature. While Python
|
|||
|
plans to improve upon this situation, SQLAlchemy projects for
|
|||
|
now are using a simple replacement to avoid any future issues.
|
|||
|
References: #563
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat May 4 19:56:42 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.0.10:
|
|||
|
* bug
|
|||
|
+ [bug] [commands] Fixed bug introduced in release 0.9.0 where the
|
|||
|
helptext for commands inadvertently got expanded to include
|
|||
|
function docstrings from the command.py module. The logic has
|
|||
|
been adjusted to only refer to the first line(s) preceding the
|
|||
|
first line break within each docstring, as was the original
|
|||
|
intent. References: #552
|
|||
|
+ [bug] [mysql] [operations] Added an assertion in
|
|||
|
RevisionMap.get_revisions() and other methods which ensures
|
|||
|
revision numbers are passed as strings or collections of
|
|||
|
strings. Driver issues particularly on MySQL may inadvertently
|
|||
|
be passing bytes here which leads to failures later on.
|
|||
|
References: #551
|
|||
|
+ [bug] [autogenerate] [mysql] Fixed bug when using the
|
|||
|
EnvironmentContext.configure.compare_server_default flag set to
|
|||
|
True where a server default that is introduced in the table
|
|||
|
metadata on an Integer column, where there is no existing server
|
|||
|
default in the database, would raise a TypeError. References:
|
|||
|
#553
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Apr 21 22:01:52 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.0.9:
|
|||
|
* Simplified the internal scheme used to generate the alembic.op
|
|||
|
namespace to no longer attempt to generate full method signatures
|
|||
|
(e.g. rather than generic *args, **kw) as this was not working in
|
|||
|
most cases anyway, while in rare circumstances it would in fact
|
|||
|
sporadically have access to the real argument names and then fail
|
|||
|
when generating the function due to missing symbols in the
|
|||
|
argument signature.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Mar 6 11:27:34 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
|||
|
|
|||
|
- Update to 1.0.8:
|
|||
|
* Fixed issue where server default comparison on the PostgreSQL dialect would
|
|||
|
fail for a blank string on Python 3.7 only, due to a change in regular
|
|||
|
expression behavior in Python 3.7.
|
|||
|
* Removed use of deprecated ``force`` parameter for SQLAlchemy quoting
|
|||
|
functions as this parameter will be removed in a future release.
|
|||
|
Pull request courtesy Parth Shandilya(ParthS007).
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jan 26 17:40:42 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.0.7:
|
|||
|
* [bug] [autogenerate] Fixed issue in new comment support where
|
|||
|
autogenerated Python code for comments wasn’t using repr() thus
|
|||
|
causing issues with quoting. Pull request courtesy Damien
|
|||
|
Garaud. References: #529
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Jan 20 04:33:38 UTC 2019 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- specfile:
|
|||
|
* update copyright year
|
|||
|
|
|||
|
- update to version 1.0.6:
|
|||
|
* [feature] [operations] Added Table and Column level comments for
|
|||
|
supported backends. New methods Operations.create_table_comment()
|
|||
|
and Operations.drop_table_comment() are added. A new arguments
|
|||
|
Operations.alter_column.comment and
|
|||
|
Operations.alter_column.existing_comment are added to
|
|||
|
Operations.alter_column(). Autogenerate support is also added to
|
|||
|
ensure comment add/drops from tables and columns are generated as
|
|||
|
well as that Operations.create_table(), Operations.add_column()
|
|||
|
both include the comment field from the source Table or Column
|
|||
|
object. References: #422
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Dec 1 18:27:49 UTC 2018 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- specfile:
|
|||
|
* update url
|
|||
|
|
|||
|
- update to version 1.0.5:
|
|||
|
* bug
|
|||
|
+ [bug] [py3k] Resolved remaining Python 3 deprecation warnings,
|
|||
|
covering the use of inspect.formatargspec() with a vendored
|
|||
|
version copied from the Python standard library, importing
|
|||
|
collections.abc above Python 3.3 when testing against abstract
|
|||
|
base classes, fixed one occurrence of log.warn(), as well as a
|
|||
|
few invalid escape sequences. References: #507
|
|||
|
|
|||
|
- changes from version 1.0.4:
|
|||
|
* [change] Code hosting has been moved to GitHub, at
|
|||
|
https://github.com/sqlalchemy/alembic. Additionally, the main
|
|||
|
Alembic website documentation URL is now
|
|||
|
https://alembic.sqlalchemy.org.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Nov 22 21:49:41 UTC 2018 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.0.3:
|
|||
|
* bug
|
|||
|
+ [bug] [mssql] Fixed regression caused by #513, where the logic
|
|||
|
to consume mssql_include was not correctly interpreting the case
|
|||
|
where the flag was not present, breaking the op.create_index
|
|||
|
directive for SQL Server as a whole. References: #516
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Nov 14 13:59:58 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
|
|||
|
|
|||
|
- Do not require old pytest and simply execute the pytest binary
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Nov 1 22:51:27 UTC 2018 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- update to version 1.0.2:
|
|||
|
* [bug] [autogenerate] The system=True flag on Column, used
|
|||
|
primarily in conjunction with the Postgresql “xmin” column, now
|
|||
|
renders within the autogenerate render process, allowing the
|
|||
|
column to be excluded from DDL. Additionally, adding a system=True
|
|||
|
column to a model will produce no autogenerate diff as this column
|
|||
|
is implicitly present in the database.References: #515
|
|||
|
* [bug] [mssql] Fixed issue where usage of the SQL Server
|
|||
|
mssql_include option within a Operations.create_index() would
|
|||
|
raise a KeyError, as the additional column(s) need to be added to
|
|||
|
the table object used by the construct internally.References: #513
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Oct 17 15:32:28 UTC 2018 - Arun Persaud <arun@gmx.de>
|
|||
|
|
|||
|
- specfile:
|
|||
|
* removed devel from noarch
|
|||
|
|
|||
|
- update to version 1.0.1:
|
|||
|
* [bug] [commands] Fixed an issue where revision descriptions were
|
|||
|
essentially being formatted twice. Any revision description that
|
|||
|
contained characters like %, writing output to stdout will fail
|
|||
|
because the call to config.print_stdout attempted to format any
|
|||
|
additional args passed to the function. This fix now only applies
|
|||
|
string formatting if any args are provided along with the output
|
|||
|
text. References: #497
|
|||
|
* [bug] [autogenerate] Fixed issue where removed method
|
|||
|
union_update() was used when a customized MigrationScript instance
|
|||
|
included entries in the .imports data member, raising an
|
|||
|
AttributeError. References: #512
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jul 14 01:57:32 UTC 2018 - arun@gmx.de
|
|||
|
|
|||
|
- update to version 1.0.0:
|
|||
|
* feature
|
|||
|
+ [feature] [general] For Alembic 1.0, Python 2.6 / 3.3 support is
|
|||
|
being dropped, allowing a fixed setup.py to be built as well as
|
|||
|
universal wheels. Pull request courtesy Hugo. References: #491
|
|||
|
+ [feature] [general] With the 1.0 release, Alembic’s minimum
|
|||
|
SQLAlchemy support version moves to 0.9.0, previously 0.7.9.
|
|||
|
* bug
|
|||
|
+ [bug] [batch] Fixed issue in batch where dropping a primary key
|
|||
|
column, then adding it back under the same name but without the
|
|||
|
primary_key flag, would not remove it from the existing
|
|||
|
PrimaryKeyConstraint. If a new PrimaryKeyConstraint is added, it
|
|||
|
is used as-is, as was the case before. References: #502
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Jul 5 21:07:55 UTC 2018 - mcepl@suse.com
|
|||
|
|
|||
|
- update 0.9.10:
|
|||
|
+ Render autogenerate=True if present Fixed issue where
|
|||
|
"autoincrement=True" would not render for a column that specified
|
|||
|
it, since as of SQLAlchemy 1.1 this is no longer the default value
|
|||
|
for "autoincrement".
|
|||
|
+ Make call to declarative_base clear in example.
|
|||
|
+ Use external impl for type rendering The render_type() method of
|
|||
|
DefaultImpl was hardcoded to only work for SQLAlchemy types.
|
|||
|
+ Implement native boolean check constraint flag in test suite
|
|||
|
+ Use repr for drop_constraint schema
|
|||
|
+ Add recipe for generating Python code for existing tables
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Mar 24 00:03:34 UTC 2018 - arun@gmx.de
|
|||
|
|
|||
|
- update to version 0.9.9:
|
|||
|
* feature
|
|||
|
+ [feature] [commands] Added new flag --indicate-current to the
|
|||
|
alembic history command. When listing versions, it will include
|
|||
|
the token “(current)” to indicate the given version is a current
|
|||
|
head in the target database. Pull request courtesy Kazutaka
|
|||
|
Mise. References: #481
|
|||
|
* bug
|
|||
|
+ [bug] [autogenerate] [mysql] The fix for #455 in version 0.9.6
|
|||
|
involving MySQL server default comparison was entirely non
|
|||
|
functional, as the test itself was also broken and didn’t reveal
|
|||
|
that it wasn’t working. The regular expression to compare server
|
|||
|
default values like CURRENT_TIMESTAMP to current_timestamp() is
|
|||
|
repaired. References: #455
|
|||
|
+ [bug] [autogenerate] [mysql] Fixed bug where MySQL server
|
|||
|
default comparisons were basically not working at all due to
|
|||
|
incorrect regexp added in #455. Also accommodates for MariaDB
|
|||
|
10.2 quoting differences in reporting integer based server
|
|||
|
defaults. References: #483
|
|||
|
+ [bug] [mysql] [operations] Fixed bug in op.drop_constraint() for
|
|||
|
MySQL where quoting rules would not be applied to the constraint
|
|||
|
name. References: #487
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Feb 17 18:31:14 UTC 2018 - arun@gmx.de
|
|||
|
|
|||
|
- update to version 0.9.8:
|
|||
|
* [bug] [runtime] Fixed bug where the Script.as_revision_number()
|
|||
|
method did not accommodate for the ‘heads’ identifier, which in
|
|||
|
turn caused the EnvironmentContext.get_head_revisions() and
|
|||
|
EnvironmentContext.get_revision_argument() methods to be not
|
|||
|
usable when multiple heads were present. The
|
|||
|
:meth:.`EnvironmentContext.get_head_revisions` method returns a
|
|||
|
tuple in all cases as documented. References: #482
|
|||
|
* [bug] [autogenerate] [postgresql] Fixed bug where autogenerate of
|
|||
|
ExcludeConstraint would render a raw quoted name for a Column that
|
|||
|
has case-sensitive characters, which when invoked as an inline
|
|||
|
member of the Table would produce a stack trace that the quoted
|
|||
|
name is not found. An incoming Column object is now rendered as
|
|||
|
sa.column('name'). References: #478
|
|||
|
* [bug] [autogenerate] Fixed bug where the indexes would not be
|
|||
|
included in a migration that was dropping the owning table. The
|
|||
|
fix now will also emit DROP INDEX for the indexes ahead of time,
|
|||
|
but more importantly will include CREATE INDEX in the downgrade
|
|||
|
migration. References: #468
|
|||
|
* [bug] [postgresql] Fixed the autogenerate of the module prefix
|
|||
|
when rendering the text_type parameter of postgresql.HSTORE, in
|
|||
|
much the same way that we do for ARRAY’s type and JSON’s
|
|||
|
text_type. References: #480
|
|||
|
* [bug] [mysql] Added support for DROP CONSTRAINT to the MySQL
|
|||
|
Alembic dialect to support MariaDB 10.2 which now has real CHECK
|
|||
|
constraints. Note this change does not add autogenerate support,
|
|||
|
only support for op.drop_constraint() to work. References: #479
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Jan 17 04:04:50 UTC 2018 - arun@gmx.de
|
|||
|
|
|||
|
- specfile:
|
|||
|
* update copyright year
|
|||
|
|
|||
|
- update to version 0.9.7:
|
|||
|
* [bug] [autogenerate] Fixed regression caused by #421 which would
|
|||
|
cause case-sensitive quoting rules to interfere with the
|
|||
|
comparison logic for index names, thus causing indexes to show as
|
|||
|
added for indexes that have case-sensitive names. Works with
|
|||
|
SQLAlchemy 0.9 and later series.
|
|||
|
* [bug] [autogenerate] [postgresql] Fixed bug where autogenerate
|
|||
|
would produce a DROP statement for the index implicitly created by
|
|||
|
a Postgresql EXCLUDE constraint, rather than skipping it as is the
|
|||
|
case for indexes implicitly generated by unique constraints. Makes
|
|||
|
use of SQLAlchemy 1.0.x’s improved “duplicates index” metadata and
|
|||
|
requires at least SQLAlchemy version 1.0.x to function correctly.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Oct 15 22:22:06 UTC 2017 - arun@gmx.de
|
|||
|
|
|||
|
- specfile:
|
|||
|
* added fdupes
|
|||
|
|
|||
|
- update to version 0.9.6:
|
|||
|
* feature
|
|||
|
+ [feature] [commands] The alembic history command will now make
|
|||
|
use of the revision environment env.py unconditionally if the
|
|||
|
revision_environment configuration flag is set to
|
|||
|
True. Previously, the environment would only be invoked if the
|
|||
|
history specification were against a database-stored revision
|
|||
|
token. References: #447
|
|||
|
* bug
|
|||
|
* [bug] [commands] Fixed a few Python3.6 deprecation warnings by
|
|||
|
replacing StopIteration with return, as well as using
|
|||
|
getfullargspec() instead of getargspec() under Python 3.
|
|||
|
References: #458
|
|||
|
* [bug] [commands] An addition to #441 fixed in 0.9.5, we forgot to
|
|||
|
also filter for the + sign in migration names which also breaks
|
|||
|
due to the relative migrations feature. References: #441
|
|||
|
* [bug] [autogenerate] Fixed bug expanding upon the fix for #85
|
|||
|
which adds the correct module import to the “inner” type for an
|
|||
|
ARRAY type, the fix now accommodates for the generic
|
|||
|
sqlalchemy.types.ARRAY type added in SQLAlchemy 1.1, rendering the
|
|||
|
inner type correctly regardless of whether or not the Postgresql
|
|||
|
dialect is present. References: #442
|
|||
|
* [bug] [mysql] Fixed bug where server default comparison of
|
|||
|
CURRENT_TIMESTAMP would fail on MariaDB 10.2 due to a change in
|
|||
|
how the function is represented by the database during reflection.
|
|||
|
References: #455
|
|||
|
* [bug] [autogenerate] Fixed bug where comparison of Numeric types
|
|||
|
would produce a difference if the Python-side Numeric
|
|||
|
inadvertently specified a non-None “scale” with a “precision” of
|
|||
|
None, even though this Numeric type will pass over the “scale”
|
|||
|
argument when rendering. Pull request courtesy Ivan Mmelnychuk.
|
|||
|
References: pull request bitbucket:70
|
|||
|
* [bug] [batch] The name of the temporary table in batch mode is now
|
|||
|
generated off of the original table name itself, to avoid
|
|||
|
conflicts for the unusual case of multiple batch operations
|
|||
|
running against the same database schema at the same time.
|
|||
|
References: #457
|
|||
|
* [bug] [autogenerate] A ForeignKeyConstraint can now render
|
|||
|
correctly if the link_to_name flag is set, as it will not attempt
|
|||
|
to resolve the name from a “key” in this case. Additionally, the
|
|||
|
constraint will render as-is even if the remote column name isn’t
|
|||
|
present on the referenced remote table. References: #456
|
|||
|
* [bug] [runtime] [py3k] Reworked “sourceless” system to be fully
|
|||
|
capable of handling any combination of: Python2/3x, pep3149 or
|
|||
|
not, PYTHONOPTIMIZE or not, for locating and loading both env.py
|
|||
|
files as well as versioning files. This includes: locating files
|
|||
|
inside of __pycache__ as well as listing out version files that
|
|||
|
might be only in versions/__pycache__, deduplicating version files
|
|||
|
that may be in versions/__pycache__ and versions/ at the same
|
|||
|
time, correctly looking for .pyc or .pyo files based on if pep488
|
|||
|
is present or not. The latest Python3x deprecation warnings
|
|||
|
involving importlib are also corrected.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Tue Aug 22 12:41:25 UTC 2017 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.9.5:
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.8.8
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.8.9
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.8.10
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.9.0
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.9.1
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.9.2
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.9.3
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.9.4
|
|||
|
* see http://alembic.zzzcomputing.com/en/latest/changelog.html#change-0.9.5
|
|||
|
- convert to singlespec
|
|||
|
- split -doc package
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Jan 28 17:45:34 UTC 2017 - dmueller@suse.com
|
|||
|
|
|||
|
- Update to 0.8.10:
|
|||
|
* various bugfixes
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Aug 15 10:24:57 UTC 2016 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.8.7:
|
|||
|
- Fixed bug where upgrading to the head of a branch which is already
|
|||
|
present would fail, only if that head were also the dependency
|
|||
|
of a different branch that is also upgraded, as the revision system
|
|||
|
would see this as trying to go in the wrong direction. The check
|
|||
|
here has been refined to distinguish between same-branch revisions
|
|||
|
out of order vs. movement along sibling branches.
|
|||
|
- Adjusted the version traversal on downgrade
|
|||
|
such that we can downgrade to a version that is a dependency for
|
|||
|
a version in a different branch, *without* needing to remove that
|
|||
|
dependent version as well. Previously, the target version would be
|
|||
|
seen as a "merge point" for it's normal up-revision as well as the
|
|||
|
dependency. This integrates with the changes for :ticket:`377`
|
|||
|
and :ticket:`378` to improve treatment of branches with dependencies
|
|||
|
overall.
|
|||
|
- Fixed bug where a downgrade to a version that is also a dependency
|
|||
|
to a different branch would fail, as the system attempted to treat
|
|||
|
this as an "unmerge" of a merge point, when in fact it doesn't have
|
|||
|
the other side of the merge point available for update.
|
|||
|
- Fixed bug where the "alembic current" command wouldn't show a revision
|
|||
|
as a current head if it were also a dependency of a version in a
|
|||
|
different branch that's also applied. Extra logic is added to
|
|||
|
extract "implied" versions of different branches from the top-level
|
|||
|
versions listed in the alembic_version table.
|
|||
|
- Fixed bug where a repr() or str() of a Script object would fail
|
|||
|
if the script had multiple dependencies.
|
|||
|
- Fixed bug in autogen where if the DB connection sends the default
|
|||
|
schema as "None", this "None" would be removed from the list of
|
|||
|
schemas to check if include_schemas were set. This could possibly
|
|||
|
impact using include_schemas with SQLite.
|
|||
|
- Small adjustment made to the batch handling for reflected CHECK
|
|||
|
constraints to accommodate for SQLAlchemy 1.1 now reflecting these.
|
|||
|
Batch mode still does not support CHECK constraints from the reflected
|
|||
|
table as these can't be easily differentiated from the ones created
|
|||
|
by types such as Boolean.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Jun 6 12:56:49 UTC 2016 - dmueller@suse.com
|
|||
|
|
|||
|
- fix source url
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Jun 3 16:37:33 UTC 2016 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.8.6:
|
|||
|
- Errors which occur within the Mako render step are now intercepted
|
|||
|
and raised as CommandErrors like other failure cases; the Mako
|
|||
|
exception itself is written using template-line formatting to
|
|||
|
a temporary file which is named in the exception message.
|
|||
|
- Added a fix to Postgresql server default comparison which first checks
|
|||
|
if the text of the default is identical to the original, before attempting
|
|||
|
to actually run the default. This accomodates for default-generation
|
|||
|
functions that generate a new value each time such as a uuid function.
|
|||
|
- Fixed bug introduced by the fix for :ticket:`338` in version 0.8.4
|
|||
|
where a server default could no longer be dropped in batch mode.
|
|||
|
Pull request courtesy Martin Domke.
|
|||
|
- Fixed bug where SQL Server arguments for drop_column() would not
|
|||
|
be propagated when running under a batch block. Pull request
|
|||
|
courtesy Michal Petrucha.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Apr 7 06:24:53 UTC 2016 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.8.5:
|
|||
|
- Fixed bug where the columns rendered in a ``PrimaryKeyConstraint``
|
|||
|
in autogenerate would inappropriately render the "key" of the
|
|||
|
column, not the name. Pull request courtesy Jesse Dhillon.
|
|||
|
- Repaired batch migration support for "schema" types which generate
|
|||
|
constraints, in particular the ``Boolean`` datatype which generates
|
|||
|
a CHECK constraint. Previously, an alter column operation with this
|
|||
|
type would fail to correctly accommodate for the CHECK constraint
|
|||
|
on change both from and to this type. In the former case the operation
|
|||
|
would fail entirely, in the latter, the CHECK constraint would
|
|||
|
not get generated. Both of these issues are repaired.
|
|||
|
- Changing a schema type such as ``Boolean`` to a non-schema type would
|
|||
|
emit a drop constraint operation which emits ``NotImplementedError`` for
|
|||
|
the MySQL dialect. This drop constraint operation is now skipped when
|
|||
|
the constraint originates from a schema type.
|
|||
|
- A major improvement to the hash id generation function, which for some
|
|||
|
reason used an awkward arithmetic formula against uuid4() that produced
|
|||
|
values that tended to start with the digits 1-4. Replaced with a
|
|||
|
simple substring approach which provides an even distribution. Pull
|
|||
|
request courtesy Antti Haapala.
|
|||
|
- Added an autogenerate renderer for the :class:`.ExecuteSQLOp` operation
|
|||
|
object; only renders if given a plain SQL string, otherwise raises
|
|||
|
NotImplementedError. Can be of help with custom autogenerate
|
|||
|
sequences that includes straight SQL execution. Pull request courtesy
|
|||
|
Jacob Magnusson.
|
|||
|
- Batch mode generates a FOREIGN KEY constraint that is self-referential
|
|||
|
using the ultimate table name, rather than ``_alembic_batch_temp``.
|
|||
|
When the table is renamed from ``_alembic_batch_temp`` back to the
|
|||
|
original name, the FK now points to the right name. This
|
|||
|
will **not** work if referential integrity is being enforced (eg. SQLite
|
|||
|
"PRAGMA FOREIGN_KEYS=ON") since the original table is dropped and
|
|||
|
the new table then renamed to that name, however this is now consistent
|
|||
|
with how foreign key constraints on **other** tables already operate
|
|||
|
with batch mode; these don't support batch mode if referential integrity
|
|||
|
is enabled in any case.
|
|||
|
- Added a type-level comparator that distinguishes :class:`.Integer`,
|
|||
|
:class:`.BigInteger`, and :class:`.SmallInteger` types and
|
|||
|
dialect-specific types; these all have "Integer" affinity so previously
|
|||
|
all compared as the same.
|
|||
|
- Fixed bug where the ``server_default`` parameter of ``alter_column()``
|
|||
|
would not function correctly in batch mode.
|
|||
|
- Adjusted the rendering for index expressions such that a :class:`.Column`
|
|||
|
object present in the source :class:`.Index` will not be rendered
|
|||
|
as table-qualified; e.g. the column name will be rendered alone.
|
|||
|
Table-qualified names here were failing on systems such as Postgresql.
|
|||
|
- Fixed an 0.8 regression whereby the "imports" dictionary member of
|
|||
|
the autogen context was removed; this collection is documented in the
|
|||
|
"render custom type" documentation as a place to add new imports.
|
|||
|
The member is now known as
|
|||
|
:attr:`.AutogenContext.imports` and the documentation is repaired.
|
|||
|
- Fixed bug in batch mode where a table that had pre-existing indexes
|
|||
|
would create the same index on the new table with the same name,
|
|||
|
which on SQLite produces a naming conflict as index names are in a
|
|||
|
global namespace on that backend. Batch mode now defers the production
|
|||
|
of both existing and new indexes until after the entire table transfer
|
|||
|
operation is complete, which also means those indexes no longer take
|
|||
|
effect during the INSERT from SELECT section as well; the indexes
|
|||
|
are applied in a single step afterwards.
|
|||
|
- Added "pytest-xdist" as a tox dependency, so that the -n flag
|
|||
|
in the test command works if this is not already installed.
|
|||
|
Pull request courtesy Julien Danjou.
|
|||
|
- Fixed issue in PG server default comparison where model-side defaults
|
|||
|
configured with Python unicode literals would leak the "u" character
|
|||
|
from a ``repr()`` into the SQL used for comparison, creating an invalid
|
|||
|
SQL expression, as the server-side comparison feature in PG currently
|
|||
|
repurposes the autogenerate Python rendering feature to get a quoted
|
|||
|
version of a plain string default.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Aug 26 14:34:12 UTC 2015 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.8.2:
|
|||
|
- Added workaround in new foreign key option detection feature for MySQL’s
|
|||
|
consideration of the “RESTRICT” option being the default, for which no
|
|||
|
value is reported from the database; the MySQL impl now corrects for when
|
|||
|
the model reports RESTRICT but the database reports nothing. A similar
|
|||
|
rule is in the default FK comparison to accommodate for the default
|
|||
|
“NO ACTION” setting being present in the model but not necessarily
|
|||
|
reported by the database, or vice versa.
|
|||
|
- A custom EnvironmentContext.configure.process_revision_directives hook
|
|||
|
can now generate op directives within the UpgradeOps and DowngradeOps
|
|||
|
containers that will be generated as Python code even when the
|
|||
|
--autogenerate flag is False; provided that revision_environment=True,
|
|||
|
the full render operation will be run even in “offline” mode.
|
|||
|
- Implemented support for autogenerate detection of changes in the ondelete,
|
|||
|
onupdate, initially and deferrable attributes of ForeignKeyConstraint
|
|||
|
objects on SQLAlchemy backends that support these on reflection (as of
|
|||
|
SQLAlchemy 1.0.8 currently Postgresql for all four, MySQL for ondelete
|
|||
|
and onupdate only). A constraint object that modifies these values will
|
|||
|
be reported as a “diff” and come out as a drop/create of the constraint
|
|||
|
with the modified values. The fields are ignored for backends which
|
|||
|
don’t reflect these attributes (as of SQLA 1.0.8 this includes SQLite,
|
|||
|
Oracle, SQL Server, others).
|
|||
|
- Repaired the render operation for the ops.AlterColumnOp object to succeed
|
|||
|
when the “existing_type” field was not present.
|
|||
|
- Fixed a regression 0.8 whereby the “multidb” environment template failed
|
|||
|
to produce independent migration script segments for the output template.
|
|||
|
This was due to the reorganization of the script rendering system for 0.8.
|
|||
|
To accommodate this change, the MigrationScript structure will in the case
|
|||
|
of multiple calls to MigrationContext.run_migrations() produce lists for
|
|||
|
the MigrationScript.upgrade_ops and MigrationScript.downgrade_ops attributes;
|
|||
|
each UpgradeOps and DowngradeOps instance keeps track of its own upgrade_token
|
|||
|
and downgrade_token, and each are rendered individually.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Aug 21 12:05:28 UTC 2015 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.8.0:
|
|||
|
- Added new command alembic edit. This command takes the same arguments
|
|||
|
as alembic show, however runs the target script file within $EDITOR.
|
|||
|
Makes use of the python-editor library in order to facilitate the
|
|||
|
handling of $EDITOR with reasonable default behaviors across platforms.
|
|||
|
Pull request courtesy Michel Albert.
|
|||
|
- Added new multiple-capable argument --depends-on to the alembic revision
|
|||
|
command, allowing depends_on to be established at the command line level
|
|||
|
rather than having to edit the file after the fact. depends_on identifiers
|
|||
|
may also be specified as branch names at the command line or directly
|
|||
|
within the migration file. The values may be specified as partial
|
|||
|
revision numbers from the command line which will be resolved to full
|
|||
|
revision numbers in the output file.
|
|||
|
- The default test runner via “python setup.py test” is now py.test.
|
|||
|
nose still works via run_tests.py.
|
|||
|
- The internal system for Alembic operations has been reworked to now
|
|||
|
build upon an extensible system of operation objects. New operations can
|
|||
|
be added to the op. namespace, including that they are available in custom
|
|||
|
autogenerate schemes.
|
|||
|
- The internal system for autogenerate been reworked to build upon the
|
|||
|
extensible system of operation objects present in #302. As part of this
|
|||
|
change, autogenerate now produces a full object graph representing a list
|
|||
|
of migration scripts to be written as well as operation objects that will
|
|||
|
render all the Python code within them; a new hook
|
|||
|
EnvironmentContext.configure.process_revision_directives allows end-user
|
|||
|
code to fully customize what autogenerate will do, including not just
|
|||
|
full manipulation of the Python steps to take but also what file or files
|
|||
|
will be written and where. Additionally, autogenerate is now extensible as
|
|||
|
far as database objects compared and rendered into scripts; any new
|
|||
|
operation directive can also be registered into a series of hooks that
|
|||
|
allow custom database/model comparison functions to run as well as to
|
|||
|
render new operation directives into autogenerate scripts.
|
|||
|
- Fixed bug in batch mode where the batch_op.create_foreign_key() directive
|
|||
|
would be incorrectly rendered with the source table and schema names in
|
|||
|
the argument list.
|
|||
|
- Fixed bug where in the erroneous case that alembic_version contains
|
|||
|
duplicate revisions, some commands would fail to process the version history
|
|||
|
correctly and end up with a KeyError. The fix allows the versioning logic
|
|||
|
to proceed, however a clear error is emitted later when attempting to
|
|||
|
update the alembic_version table.
|
|||
|
- Implemented support for BatchOperations.create_primary_key() and
|
|||
|
BatchOperations.create_check_constraint(). Additionally, table keyword
|
|||
|
arguments are copied from the original reflected table, such as the
|
|||
|
“mysql_engine” keyword argument.
|
|||
|
- Fixed critical issue where a complex series of branches/merges would
|
|||
|
bog down the iteration algorithm working over redundant nodes for millions
|
|||
|
of cycles. An internal adjustment has been made so that duplicate nodes are
|
|||
|
skipped within this iteration.
|
|||
|
- The MigrationContext.stamp() method, added as part of the versioning
|
|||
|
refactor in 0.7 as a more granular version of command.stamp(), now includes
|
|||
|
the “create the alembic_version table if not present” step in the same
|
|||
|
way as the command version, which was previously omitted.
|
|||
|
- Fixed bug where foreign key options including “onupdate”, “ondelete” would
|
|||
|
not render within the op.create_foreign_key() directive, even though they
|
|||
|
render within a full ForeignKeyConstraint directive.
|
|||
|
- Repaired warnings that occur when running unit tests against SQLAlchemy
|
|||
|
1.0.5 or greater involving the “legacy_schema_aliasing” flag.
|
|||
|
- Add python-pytest-cov as BuildRequires
|
|||
|
- Add python-python-editor as Requires and BuildRequires
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Jul 24 19:42:39 UTC 2015 - seife+obs@b1-systems.com
|
|||
|
|
|||
|
- fix rhel deps by depending on /usr/sbin/update-alternatives
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Jul 23 12:20:15 UTC 2015 - seife+obs@b1-systems.com
|
|||
|
|
|||
|
- update to 0.7.7:
|
|||
|
* Implemented support for BatchOperations.create_primary_key()
|
|||
|
and BatchOperations.create_check_constraint(). Additionally,
|
|||
|
table keyword arguments are copied from the original reflected
|
|||
|
table, such as the "mysql_engine" keyword argument.
|
|||
|
* Fixed critical issue where a complex series of branches/merges
|
|||
|
would bog down the iteration algorithm working over redundant
|
|||
|
nodes for millions of cycles. An internal adjustment has been
|
|||
|
made so that duplicate nodes are skipped within this iteration.
|
|||
|
* The MigrationContext.stamp() method, added as part of the
|
|||
|
versioning refactor in 0.7 as a more granular version of
|
|||
|
command.stamp(), now includes the “create the alembic_version
|
|||
|
table if not present” step in the same way as the command
|
|||
|
version, which was previously omitted.
|
|||
|
* Fixed bug where foreign key options including "onupdate",
|
|||
|
"ondelete" would not render within the op.create_foreign_key()
|
|||
|
directive, even though they render within a full
|
|||
|
ForeignKeyConstraint directive.
|
|||
|
* Repaired warnings that occur when running unit tests against
|
|||
|
SQLAlchemy 1.0.5 or greater involving the
|
|||
|
"legacy_schema_aliasing" flag.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Tue Jun 9 11:33:03 UTC 2015 - dmueller@suse.com
|
|||
|
|
|||
|
- update to 0.7.6:
|
|||
|
* Fixed bug where the case of multiple mergepoints that all
|
|||
|
have the identical set of ancestor revisions would fail to be
|
|||
|
upgradable, producing an assertion failure.
|
|||
|
* Added support for type comparison functions to be not just per
|
|||
|
environment, but also present on the custom types themselves, by
|
|||
|
supplying a method ``compare_against_backend``.
|
|||
|
* Fully implemented the :paramref:`~.Operations.batch_alter_table.copy_from`
|
|||
|
parameter for batch mode
|
|||
|
* Repaired support for the :meth:`.BatchOperations.create_index`
|
|||
|
directive, which was mis-named internally such that the operation
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sat Apr 25 15:53:02 UTC 2015 - benoit.monin@gmx.fr
|
|||
|
|
|||
|
- update to 0.7.5.post2:
|
|||
|
* Added a new feature Config.attributes, to help with the use
|
|||
|
case of sharing state such as engines and connections on the
|
|||
|
outside with a series of Alembic API calls; also added a new
|
|||
|
cookbook section to describe this simple but pretty important
|
|||
|
use case.
|
|||
|
* The format of the default env.py script has been refined a bit;
|
|||
|
it now uses context managers not only for the scope of the
|
|||
|
transaction, but also for connectivity from the starting
|
|||
|
engine. The engine is also now called a “connectable” in
|
|||
|
support of the use case of an external connection being passed
|
|||
|
in.
|
|||
|
* Added support for “alembic stamp” to work when given “heads” as
|
|||
|
an argument, when multiple heads are present.
|
|||
|
* 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.
|
|||
|
* Fixed bug where the mssql DROP COLUMN directive failed to
|
|||
|
include modifiers such as “schema” when emitting the DDL.
|
|||
|
* Postgresql “functional” indexes are necessarily skipped from
|
|||
|
the autogenerate process, as the SQLAlchemy backend currently
|
|||
|
does not support reflection of these structures. A warning is
|
|||
|
emitted both from the SQLAlchemy backend as well as from the
|
|||
|
Alembic backend for Postgresql when such an index is detected.
|
|||
|
* Fixed bug where MySQL backend would report dropped unique
|
|||
|
indexes and/or constraints as both at the same time. This is
|
|||
|
because MySQL doesn’t actually have a “unique constraint”
|
|||
|
construct that reports differently than a “unique index”, so it
|
|||
|
is present in both lists. The net effect though is that the
|
|||
|
MySQL backend will report a dropped unique index/constraint as
|
|||
|
an index in cases where the object was first created as a
|
|||
|
unique constraint, if no other information is available to make
|
|||
|
the decision. This differs from other backends like Postgresql
|
|||
|
which can report on unique constraints and unique indexes
|
|||
|
separately.
|
|||
|
* Fixed bug where using a partial revision identifier as the
|
|||
|
“starting revision” in --sql mode in a downgrade operation
|
|||
|
would fail to resolve properly.
|
|||
|
- set minimum version for SQLAlchemy to 0.7.6
|
|||
|
- use update-alternatives for alembic binary
|
|||
|
- always run the tests when building the package
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Feb 5 15:04:20 UTC 2015 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to 0.7.4:
|
|||
|
* Repaired issue where a server default specified without text()
|
|||
|
that represented a numeric or floating point (e.g. with decimal
|
|||
|
places) value would fail in the Postgresql-specific check for
|
|||
|
“compare server default”; as PG accepts the value with quotes
|
|||
|
in the table specification, it’s still valid. Pull request
|
|||
|
courtesy Dimitris Theodorou.
|
|||
|
* The rendering of a ForeignKeyConstraint will now ensure that
|
|||
|
the names of the source and target columns are the database-side
|
|||
|
name of each column, and not the value of the .key attribute as
|
|||
|
may be set only on the Python side. This is because Alembic
|
|||
|
generates the DDL for constraints as standalone objects without
|
|||
|
the need to actually refer to an in-Python Table object, so
|
|||
|
there’s no step that would resolve these Python-only key names
|
|||
|
to database column names.
|
|||
|
* Fixed bug in foreign key autogenerate where if the in-Python
|
|||
|
table used custom column keys (e.g. using the key='foo' kwarg
|
|||
|
to Column), the comparison of existing foreign keys to those
|
|||
|
specified in the metadata would fail, as the reflected table
|
|||
|
would not have these keys available which to match up. Foreign
|
|||
|
key comparison for autogenerate now ensures it’s looking at
|
|||
|
the database-side names of the columns in all cases; this
|
|||
|
matches the same functionality within unique constraints and
|
|||
|
indexes.
|
|||
|
* Fixed issue in autogenerate type rendering where types that
|
|||
|
belong to modules that have the name “sqlalchemy” in them would
|
|||
|
be mistaken as being part of the sqlalchemy. namespace. Pull
|
|||
|
req courtesy Bartosz Burclaf.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Jan 5 10:19:27 UTC 2015 - dmueller@suse.com
|
|||
|
|
|||
|
- update to 0.7.3:
|
|||
|
* Fixed regression in new versioning system where upgrade / history
|
|||
|
operation would fail on AttributeError if no version files were
|
|||
|
present at all.
|
|||
|
* Adjusted the SQLite backend regarding autogen of unique constraints
|
|||
|
to work fully with the current SQLAlchemy 1.0, which now will report
|
|||
|
on UNIQUE constraints that have no name.
|
|||
|
* Fixed bug in batch where if the target table contained multiple
|
|||
|
foreign keys to the same target table, the batch mechanics would
|
|||
|
fail with a "table already exists" error. Thanks for the help
|
|||
|
on this from Lucas Kahlert.
|
|||
|
* Fixed an issue where the MySQL routine to skip foreign-key-implicit
|
|||
|
indexes would also catch unnamed unique indexes, as they would be
|
|||
|
named after the column and look like the FK indexes. Pull request
|
|||
|
courtesy Johannes Erdfelt.
|
|||
|
* Repaired a regression in both the MSSQL and Oracle dialects whereby
|
|||
|
the overridden ``_exec()`` method failed to return a value, as is
|
|||
|
needed now in the 0.7 series.
|
|||
|
* The ``render_as_batch`` flag was inadvertently hardcoded to ``True``,
|
|||
|
so all autogenerates were spitting out batch mode...this has been
|
|||
|
fixed so that batch mode again is only when selected in env.py.
|
|||
|
* Support for autogenerate of FOREIGN KEY constraints has been added.
|
|||
|
These are delivered within the autogenerate process in the same
|
|||
|
manner as UNIQUE constraints, including ``include_object`` support.
|
|||
|
Big thanks to Ann Kamyshnikova for doing the heavy lifting here.
|
|||
|
* Fixed bug where the "source_schema" argument was not correctly passed
|
|||
|
when calling :meth:`.BatchOperations.create_foreign_key`. Pull
|
|||
|
request courtesy Malte Marquarding.
|
|||
|
* The "multiple heads / branches" feature has now landed. This is
|
|||
|
by far the most significant change Alembic has seen since its inception;
|
|||
|
while the workflow of most commands hasn't changed, and the format
|
|||
|
of version files and the ``alembic_version`` table are unchanged as well,
|
|||
|
a new suite of features opens up in the case where multiple version
|
|||
|
files refer to the same parent, or to the "base". Merging of
|
|||
|
branches, operating across distinct named heads, and multiple
|
|||
|
independent bases are now all supported. The feature incurs radical
|
|||
|
changes to the internals of versioning and traversal, and should be
|
|||
|
treated as "beta mode" for the next several subsequent releases
|
|||
|
within 0.7.
|
|||
|
* Added "move and copy" workflow, where a table to be altered is copied to
|
|||
|
a new one with the new structure and the old one dropped, is now
|
|||
|
implemented for SQLite as well as all database backends in general
|
|||
|
using the new :meth:`.Operations.batch_alter_table` system. This
|
|||
|
directive provides a table-specific operations context which gathers
|
|||
|
column- and constraint-level mutations specific to that table, and
|
|||
|
at the end of the context creates a new table combining the structure
|
|||
|
of the old one with the given changes, copies data from old table to new,
|
|||
|
and finally drops the old table,
|
|||
|
renaming the new one to the existing name. This is required for
|
|||
|
fully featured SQLite migrations, as SQLite has very little support for the
|
|||
|
traditional ALTER directive. The batch directive
|
|||
|
is intended to produce code that is still compatible with other databases,
|
|||
|
in that the "move and copy" process only occurs for SQLite by default,
|
|||
|
while still providing some level of sanity to SQLite's
|
|||
|
requirement by allowing multiple table mutation operations to
|
|||
|
proceed within one "move and copy" as well as providing explicit
|
|||
|
control over when this operation actually occurs. The "move and copy"
|
|||
|
feature may be optionally applied to other backends as well, however
|
|||
|
dealing with referential integrity constraints from other tables must
|
|||
|
still be handled explicitly.
|
|||
|
* Relative revision identifiers as used with ``alembic upgrade``,
|
|||
|
``alembic downgrade`` and ``alembic history`` can be combined with
|
|||
|
specific revisions as well, e.g. ``alembic upgrade ae10+3``, to produce
|
|||
|
a migration target relative to the given exact version.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Sep 15 05:25:46 UTC 2014 - tbechtold@suse.com
|
|||
|
|
|||
|
- update to version 0.6.7:
|
|||
|
* See
|
|||
|
+ http://alembic.readthedocs.org/en/latest/changelog.html#change-0.6.6
|
|||
|
+ http://alembic.readthedocs.org/en/latest/changelog.html#change-0.6.7
|
|||
|
* Fixed bug in MSSQL dialect where "rename table" wasn't using
|
|||
|
``sp_rename()`` as is required on SQL Server. Pull request courtesy
|
|||
|
* Added support for functional indexes when using the
|
|||
|
:meth:`.Operations.create_index` directive. Within the list of columns,
|
|||
|
the SQLAlchemy ``text()`` construct can be sent, embedding a literal
|
|||
|
SQL expression; the :meth:`.Operations.create_index` will perform some
|
|||
|
hackery behind the scenes to get the :class:`.Index` construct to cooperate.
|
|||
|
This works around some current limitations in :class:`.Index`
|
|||
|
which should be resolved on the SQLAlchemy side at some point.
|
|||
|
* A file named ``__init__.py`` in the ``versions/`` directory is now
|
|||
|
ignored by Alembic when the collection of version files is retrieved.
|
|||
|
Pull request courtesy Michael Floering.
|
|||
|
* Fixed Py3K bug where an attempt would be made to sort None against
|
|||
|
string values when autogenerate would detect tables across multiple
|
|||
|
schemas, including the default schema. Pull request courtesy
|
|||
|
paradoxxxzero.
|
|||
|
* Autogenerate render will render the arguments within a Table construct
|
|||
|
using ``*[...]`` when the number of columns/elements is greater than
|
|||
|
255. Pull request courtesy Ryan P. Kelly.
|
|||
|
* Fixed bug where foreign key constraints would fail to render in
|
|||
|
autogenerate when a schema name was present. Pull request courtesy
|
|||
|
Andreas Zeidler.
|
|||
|
* Some deep-in-the-weeds fixes to try to get "server default" comparison
|
|||
|
working better across platforms and expressions, in particular on
|
|||
|
the Postgresql backend, mostly dealing with quoting/not quoting of various
|
|||
|
expressions at the appropriate time and on a per-backend basis.
|
|||
|
Repaired and tested support for such defaults as Postgresql interval
|
|||
|
and array defaults.
|
|||
|
* When a run of Alembic command line fails due to ``CommandError``,
|
|||
|
the output now prefixes the string with ``"FAILED:"``, and the error
|
|||
|
is also written to the log output using ``log.error()``.
|
|||
|
* Liberalized even more the check for MySQL indexes that shouldn't be
|
|||
|
counted in autogenerate as "drops"; this time it's been reported
|
|||
|
that an implicitly created index might be named the same as a composite
|
|||
|
foreign key constraint, and not the actual columns, so we now skip those
|
|||
|
when detected as well.
|
|||
|
* Added a new accessor :attr:`.MigrationContext.config`, when used
|
|||
|
in conjunction with a :class:`.EnvironmentContext` and
|
|||
|
:class:`.Config`, this config will be returned. Patch
|
|||
|
courtesy Marc Abramowitz.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Jul 24 11:33:27 UTC 2014 - dmueller@suse.com
|
|||
|
|
|||
|
- update to 0.6.5:
|
|||
|
* See http://alembic.readthedocs.org/en/latest/changelog.html#change-0.6.5
|
|||
|
* Added new argument EnvironmentContext.configure.user_module_prefix
|
|||
|
* The ScriptDirectory system that loads migration files from a
|
|||
|
versions/ directory
|
|||
|
* The command.revision() command now returns the Script object
|
|||
|
corresponding to the newly generated revision
|
|||
|
* Added new feature
|
|||
|
EnvironmentContext.configure.transaction_per_migration, which when True
|
|||
|
causes the BEGIN/COMMIT pair to incur for each migration individually
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Jan 13 13:33:57 UTC 2014 - dmueller@suse.com
|
|||
|
|
|||
|
- update to 0.6.2:
|
|||
|
* Expanded the size of the “slug” generated by “revision” to 40 characters,
|
|||
|
which is also configurable by new field truncate_slug_length
|
|||
|
* Support for autogeneration detection and rendering of indexes
|
|||
|
and unique constraints has been added
|
|||
|
* Added new argument mssql_drop_foreign_key to Operations.drop_column()
|
|||
|
* Bugfixes
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Oct 24 10:58:37 UTC 2013 - speilicke@suse.com
|
|||
|
|
|||
|
- Require python-setuptools instead of distribute (upstreams merged)
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Aug 8 20:36:51 UTC 2013 - dmueller@suse.com
|
|||
|
|
|||
|
- update to 0.6.0:
|
|||
|
* [feature] Added new kw argument to EnvironmentContext.configure() include_object.
|
|||
|
* [feature] The output of the alembic history command is now expanded.
|
|||
|
* [feature] Added alembic.config.Config.cmd_opts attribute, allows access to the
|
|||
|
argparse options passed to the alembic runner.(link)
|
|||
|
* [feature] Added new command line argument -x, allows extra arguments to be
|
|||
|
appended to the command line which can be consumed within an env.py script by
|
|||
|
looking at context.config.cmd_opts.x, or more simply a new method
|
|||
|
EnvironmentContext.get_x_argument().(link)
|
|||
|
* [feature] Added -r argument to alembic history command, allows specification of [start]:[end] to view a slice of history.
|
|||
|
* [feature] Source base is now in-place for Python 2.6 through 3.3,
|
|||
|
without the need for 2to3.
|
|||
|
* [feature] Added new kw argument to EnvironmentContext.configure() include_object.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Sun Apr 14 15:53:22 UTC 2013 - p.drouand@gmail.com
|
|||
|
|
|||
|
- Update to version 0.5.0
|
|||
|
+ added version_table_schema argument to EnvironmentContext.configure(),
|
|||
|
complements the version_table argument to set an optional remote schema
|
|||
|
for the version table.
|
|||
|
+ added output_encoding option to EnvironmentContext.configure(), used with --sql
|
|||
|
mode to apply an encoding to the output stream.
|
|||
|
+ added Operations.create_primary_key() operation, will genenerate an
|
|||
|
ADD CONSTRAINT for a primary key.
|
|||
|
+ upgrade and downgrade commands will list the first line of the docstring
|
|||
|
out next to the version number.
|
|||
|
+ added –head-only option to “alembic current”, will print current version
|
|||
|
plus the symbol “(head)” if this version is the head or not.
|
|||
|
+ the rendering of any construct during autogenerate can be customized, in particular
|
|||
|
to allow special rendering for user-defined column, constraint subclasses, using new render
|
|||
|
_item argument to EnvironmentContext.configure().
|
|||
|
+ fix format of RENAME for table that includes schema with Postgresql; the
|
|||
|
schema name shouldn’t be in the “TO” field.
|
|||
|
+ fix bug whereby double quoting would be applied to target column name during an sp_rename operation.
|
|||
|
+ fix transactional_ddl flag for SQLite, MySQL dialects set to False. MySQL doesn’t support it,
|
|||
|
SQLite does but current pysqlite driver does not.
|
|||
|
+ fix Autogenerate will render additional table keyword arguments like “mysql_engine” and
|
|||
|
others within op.create_table().
|
|||
|
+ fix bug whereby create_index() would include in the constraint columns that are added
|
|||
|
to all Table objects using events, externally to the generation of the constraint.
|
|||
|
This is the same issue that was fixed for unique constraints in version 0.3.2.
|
|||
|
+ fix worked around a backwards-incompatible regression in Python3.3 regarding argparse;
|
|||
|
running “alembic” with no arguments now yields an informative error in py3.3 as with
|
|||
|
all previous versions.
|
|||
|
+ fix host of argument name changes within migration operations for consistency. Keyword
|
|||
|
arguments will continue to work on the old name for backwards compatibility, however required
|
|||
|
positional arguments will not:
|
|||
|
* Operations.alter_column() - name -> new_column_name - old name will work for backwards compatibility.
|
|||
|
* Operations.create_index() - tablename -> table_name - argument is positional.
|
|||
|
* Operations.drop_index() - tablename -> table_name - old name will work for backwards compatibility.
|
|||
|
* Operations.drop_constraint() - tablename -> table_name - argument is positional.
|
|||
|
* Operations.drop_constraint() - type -> type_ - old name will work for backwards compatibility
|
|||
|
+ SQLAlchemy 0.6 is no longer supported by Alembic - minimum version is 0.7.3, full support is as of 0.7.9.
|
|||
|
- Initial python3 support
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Thu Jan 17 12:31:01 UTC 2013 - toddrme2178@gmail.com
|
|||
|
|
|||
|
- Set nose version requirement
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Jan 14 16:02:38 UTC 2013 - saschpe@suse.de
|
|||
|
|
|||
|
- Update to version 0.4.2:
|
|||
|
+ Fixed bug where autogenerate would fail if a Column to be added to
|
|||
|
a table made use of the ".key" paramter.
|
|||
|
+ Added a workaround to setup.py to prevent "NoneType" error from
|
|||
|
occuring when "setup.py test" is run.
|
|||
|
+ Added a README.unittests with instructions for running the test
|
|||
|
suite fully.
|
|||
|
- Changes from version 0.4.1:
|
|||
|
+ Added support for autogenerate render of ForeignKeyConstraint
|
|||
|
options onupdate, ondelete, initially, and deferred.
|
|||
|
+ Explicit error message describing the case when downgrade --sql
|
|||
|
is used without specifying specific start/end versions.
|
|||
|
+ Fixed the minute component in file_template
|
|||
|
which returned the month part of the create date.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Mon Jan 14 16:00:10 UTC 2013 - saschpe@suse.de
|
|||
|
|
|||
|
- Disable testsuite on SLE
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Fri Nov 23 10:43:42 UTC 2012 - saschpe@suse.de
|
|||
|
|
|||
|
- Update to version 0.4.0:
|
|||
|
+ [feature] Support for tables in alternate schemas
|
|||
|
has been added fully to all operations, as well as to
|
|||
|
the autogenerate feature. When using autogenerate,
|
|||
|
specifying the flag include_schemas=True to
|
|||
|
Environment.configure() will also cause autogenerate
|
|||
|
to scan all schemas located by Inspector.get_schema_names(),
|
|||
|
which is supported by *some* (but not all)
|
|||
|
SQLAlchemy dialects including Postgresql.
|
|||
|
*Enormous* thanks to Bruno Binet for a huge effort
|
|||
|
in implementing as well as writing tests. #33.
|
|||
|
+ [feature] The command line runner has been organized
|
|||
|
into a reusable CommandLine object, so that other
|
|||
|
front-ends can re-use the argument parsing built
|
|||
|
in. #70
|
|||
|
+ [feature] Added "stdout" option to Config, provides
|
|||
|
control over where the "print" output of commands like
|
|||
|
"history", "init", "current" etc. are sent. #43
|
|||
|
+ [bug] Fixed the "multidb" template which was badly out
|
|||
|
of date. It now generates revision files using
|
|||
|
the configuration to determine the different
|
|||
|
upgrade_<xyz>() methods needed as well, instead of
|
|||
|
needing to hardcode these. Huge thanks to
|
|||
|
BryceLohr for doing the heavy lifting here. #71
|
|||
|
+ [bug] Fixed the regexp that was checking for .py files
|
|||
|
in the version directory to allow any .py file through.
|
|||
|
Previously it was doing some kind of defensive checking,
|
|||
|
probably from some early notions of how this directory
|
|||
|
works, that was prohibiting various filename patterns
|
|||
|
such as those which begin with numbers. #72
|
|||
|
+ [bug] Fixed MySQL rendering for server_default which
|
|||
|
didn't work if the server_default was a generated
|
|||
|
SQL expression. Courtesy Moriyoshi Koizumi.
|
|||
|
+ [feature] Added support for alteration of MySQL
|
|||
|
columns that have AUTO_INCREMENT, as well as enabling
|
|||
|
this flag. Courtesy Moriyoshi Koizumi.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Jun 6 12:13:48 UTC 2012 - saschpe@suse.de
|
|||
|
|
|||
|
- Update to version 0.3.4:
|
|||
|
+ [bug] Fixed command-line bug introduced by the
|
|||
|
"revision_environment" feature.
|
|||
|
- Changes from version 0.3.3:
|
|||
|
+ [feature] New config argument
|
|||
|
"revision_environment=true", causes env.py to
|
|||
|
be run unconditionally when the "revision" command
|
|||
|
is run, to support script.py.mako templates with
|
|||
|
dependencies on custom "template_args".
|
|||
|
+ [feature] Added "template_args" option to configure()
|
|||
|
so that an env.py can add additional arguments
|
|||
|
to the template context when running the
|
|||
|
"revision" command. This requires either --autogenerate
|
|||
|
or the configuration directive "revision_environment=true".
|
|||
|
+ [bug] Added "type" argument to op.drop_constraint(),
|
|||
|
and implemented full constraint drop support for
|
|||
|
MySQL. CHECK and undefined raise an error.
|
|||
|
MySQL needs the constraint type
|
|||
|
in order to emit a DROP CONSTRAINT. #44
|
|||
|
+ [feature] Added version_table argument to
|
|||
|
EnvironmentContext.configure(), allowing for the
|
|||
|
configuration of the version table name. #34
|
|||
|
+ [feature] Added support for "relative" migration
|
|||
|
identifiers, i.e. "alembic upgrade +2",
|
|||
|
"alembic downgrade -1". Courtesy
|
|||
|
Atsushi Odagiri for this feature.
|
|||
|
+ [bug] Fixed bug whereby directories inside of
|
|||
|
the template directories, such as __pycache__
|
|||
|
on Pypy, would mistakenly be interpreted as
|
|||
|
files which are part of the template. #49
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed May 23 12:55:05 UTC 2012 - saschpe@suse.de
|
|||
|
|
|||
|
- Update to version 0.3.2:
|
|||
|
+ [feature] Basic support for Oracle added
|
|||
|
+ [feature] Added support for UniqueConstraint in autogenerate
|
|||
|
+ [bug] Fixed support of schema-qualified ForeignKey target in column alter operations,
|
|||
|
+ [bug] Fixed bug whereby create_unique_constraint() would include in
|
|||
|
the constraint columns that are added to all Table objects using events,
|
|||
|
externally to the generation of the constraint.
|
|||
|
- Changes from version 0.3.1:
|
|||
|
+ [bug] bulk_insert() fixes:
|
|||
|
1. bulk_insert() operation was not working most likely since the 0.2 series
|
|||
|
when used with an engine
|
|||
|
2. Repaired bulk_insert() to complete when used against a lower-case-t
|
|||
|
table and executing with only one set of parameters, working
|
|||
|
around SQLAlchemy bug #2461 in this regard.
|
|||
|
3. bulk_insert() uses "inline=True" so that phrases like RETURNING and
|
|||
|
such don't get invoked for single-row bulk inserts.
|
|||
|
4. bulk_insert() will check that you're passing a list of dictionaries
|
|||
|
in, raises TypeError if not detected.
|
|||
|
- Changes from version 0.3.0:
|
|||
|
+ [general] The focus of 0.3 is to clean up and more fully document the
|
|||
|
public API of Alembic, including better accessors on the MigrationContext
|
|||
|
and ScriptDirectory objects. Methods that are not considered to be
|
|||
|
public on these objects have been underscored, and methods which should
|
|||
|
be public have been cleaned up and documented, including:
|
|||
|
MigrationContext.get_current_revision()
|
|||
|
ScriptDirectory.iterate_revisions()
|
|||
|
ScriptDirectory.get_current_head()
|
|||
|
ScriptDirectory.get_heads()
|
|||
|
ScriptDirectory.get_base()
|
|||
|
ScriptDirectory.generate_revision()
|
|||
|
+ [feature] Added a bit of autogenerate to the public API in the form of
|
|||
|
the function alembic.autogenerate.compare_metadata.
|
|||
|
|
|||
|
-------------------------------------------------------------------
|
|||
|
Wed Mar 7 08:25:45 UTC 2012 - saschpe@suse.de
|
|||
|
|
|||
|
- Initial version
|
|||
|
|