Skip to content

[Backend Dependencies Update] Update alembic to 1.1.0#708

Closed
pyup-bot wants to merge 1 commit intomasterfrom
pyup-update-alembic-1.0.10-to-1.1.0
Closed

[Backend Dependencies Update] Update alembic to 1.1.0#708
pyup-bot wants to merge 1 commit intomasterfrom
pyup-update-alembic-1.0.10-to-1.1.0

Conversation

@pyup-bot
Copy link
Copy Markdown
Collaborator

This PR updates alembic from 1.0.10 to 1.1.0.

Changelog

1.1.0

:released: August 26, 2019

 .. change::
     :tags: change

     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.

 .. change::
     :tags: change, internals

     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.

 .. change::
     :tags: bug, commands
     :tickets: 562

     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.

 .. change::
     :tags: bug, py3k

     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.


 .. change::
     :tags: bug, mysql
     :tickets: 594

     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.


 .. change::
     :tags: bug, setup
     :tickets: 592

     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.

     .. seealso::

         https://github.com/pypa/setuptools/issues/1684

         https://github.com/pytest-dev/pytest/issues/5534

 .. change::
     :tags: usecase, commands
     :tickets: 571

     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.



.. changelog::

1.0.11

:released: June 25, 2019

 .. change::
     :tags: bug, sqlite, autogenerate, batch
     :tickets: 579

     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.


 .. change::
     :tags: bug, sqlite, autogenerate
     :tickets: 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.


 .. change::
     :tags: bug, autogenerate

     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.

 .. change::
    :tags: bug, mysql
    :tickets: 554

    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.



 .. change::
     :tags: bug, mysql, operations
     :tickets: 564

     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.



 .. change::
     :tags: bug, environment

     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.


 .. change::
     :tags: bug, py3k
     :tickets: 563

     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.


.. changelog::
Links

@pyup-bot
Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #716

@pyup-bot pyup-bot closed this Sep 20, 2019
@jpowie01 jpowie01 deleted the pyup-update-alembic-1.0.10-to-1.1.0 branch September 20, 2019 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant