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

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

Branch: CURRENT, Version: 1.5.2, Package name: py38-alembic-1.5.2, 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: bbb1642a118b0232ab8d9ea6e52286bea5944251
RMD160: fbab13a82820bb2398b6a7a7b78e34ea6df90b28
Filesize: 1103.184 KB

Version history: (Expand)

CVS history: (Expand)

   2021-01-26 12:20:07 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-alembic: updated to 1.5.2


[bug] [regression] [versioning]
Fixed regression where new “loop detection” feature introduced in 757 \ 
produced false positives for revision names that have overlapping substrings \ 
between revision number and down revision and/or dependency, if the \ 
downrev/dependency were not in sequence form.

[bug] [environment]
Fixed regression where Alembic would fail to create a transaction properly if \ 
the sqlalchemy.engine.Connection were a so-called “branched” connection, \ 
that is, one where the .connect() method had been called to create a “sub” \ 


[bug] [commands] [installation]
Fixed installation issue where the “templates” directory was not being \ 
installed, preventing commands like “list_templates” and “init” from \ 


[changed] [environment]
To accommodate SQLAlchemy 1.4 and 2.0, the migration model now no longer assumes \ 
that the SQLAlchemy Connection will autocommit an individual operation. This \ 
essentially means that for databases that use non-transactional DDL (pysqlite \ 
current driver behavior, MySQL), there is still a BEGIN/COMMIT block that will \ 
surround each individual migration. Databases that support transactional DDL \ 
should continue to have the same flow, either per migration or per-entire run, \ 
depending on the value of the Environment.configure.transaction_per_migration \ 

[changed] [environment]
A CommandError is raised if a sqlalchemy.engine.Engine is passed to the \ 
MigrationContext.configure() method instead of a sqlalchemy.engine.Connection \ 
object. Previously, this would be a warning only.
Alembic 1.5.0 now supports Python 2.7 and Python 3.6 and above, as well as \ 
SQLAlchemy 1.3.0 and above. Support is removed for Python 3 versions prior to \ 
3.6 and SQLAlchemy versions prior to the 1.3 series.
   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.