./databases/py-alembic, Database migration tool for SQLAlchemy

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 1.4.3, Package name: py37-alembic-1.4.3, Maintainer: kamelderouiche

Alembic is a database migrations tool written by the author of
SQLAlchemy. A migrations tool can emit ALTER statements to a database
in order to change the structure of tables and other constructs,
provides a system whereby "migration scripts" may be constructed; each
script indicates a particular series of steps that can "upgrade" a
target database to a new version, and optionally a series of steps
that can "downgrade" similarly, doing the same steps in reverse, and
allows the scripts to execute in some sequential manner.

Required to run:
[devel/py-setuptools] [time/py-dateutil] [databases/py-sqlalchemy] [devel/py-mako] [editors/py-editor] [lang/python37]

Required to build:

Master sites:

SHA1: abc6e8e80a3cc498fc4e09510dcd10dc09822a4b
RMD160: 92c8b575588299afdc351beb28971b9995f98c8b
Filesize: 1082.159 KB

Version history: (Expand)

CVS history: (Expand)

   2020-10-15 15:53:46 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-alembic: updated to 1.4.3


[bug] [batch] [sqlite]
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.

[bug] [mysql] [ops]
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.

[bug] [batch] [sqlite]
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.

[bug] [commands]
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.

[bug] [batch]
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.

[bug] [mssql]
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 \ 
   2020-05-16 11:03:23 by Adam Ciarcinski | Files touched by this commit (11)
Log message:
fix pytest versioned dep.
   2020-05-16 10:47:10 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
py-alembic: pytest from versioned depends
   2020-05-16 10:45:23 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
py-alembic: pytest from versioned depends
   2020-04-10 10:02:04 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-alembic: updated to 1.4.2


[bug] [tests]

Fixed an issue that prevented the test suite from running with the recently \ 
released py.test 5.4.0.

[bug] [autogenerate] [mysql]

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”.

[bug] [op directives] [oracle]

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.


[usecase] [autogenerate]

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.


[bug] [autogenerate]

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.

[bug] [environment]

Error message for “path doesn’t exist” when loading up script environment \ 
now displays the absolute path. Pull request courtesy Rowan Hart.

[bug] [autogenerate]

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.

[bug] [environment]

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.

[bug] [operations]

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.
   2020-02-16 22:11:41 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-alembic: updated to 1.4.0


[feature] [batch]

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 \ 


[bug] [autogenerate]

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.

[bug] [autogenerate]

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.
   2019-12-03 19:21:15 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-alembic: updated to 1.3.1

[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.


[feature] [command]
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.

[bug] [autogenerate]
Fixed bug in new Variant autogenerate where the order of the arguments to \ 
Variant were mistakenly reversed.

[change] [compatibility]
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.
   2019-10-10 20:26:53 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-alembic: updated to 1.2.1



[bug] [command]

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.

[bug] [tests]

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.



[feature] [command]

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.

[feature] [runtime]

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.

[feature] [commands]

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 \ 

[feature] [environment]

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.