databasez

Async database support for Python

MIT License

Downloads
6.8K
Stars
19

Bot releases are visible (Hide)

databasez - Version 0.10.2 Latest Release

Published by devkral about 1 month ago

Fixed

  • Fix transactions in multi-threading contexts.

Changed

  • The transaction stack contains the backend too.

Removed

  • Remove ACTIVE_TRANSACTIONS ContextVar plus tests for it. It became unreliable with multithreading.
databasez - Version 0.10.1

Published by devkral about 2 months ago

Added

  • poll_interval parameter (only relevant when using multithreading).

Fixed

  • Improved thread-safety.
  • full_isolation was not passed through in TestClient.
databasez - Version 0.10.0

Published by devkral about 2 months ago

Added

  • full_isolation parameter. Isolate the force_rollback Connection in a thread.
  • Timeouts for operations.

Fixed

  • batched_iterate interface of Connection differed from the one of Database.
  • iterate interface of Connection differed from the one of Database.
  • Hooks were called on automatically created Database objects.
  • More multithreading safety.
databasez - Version 0.9.7

Published by devkral about 2 months ago

Added

  • It is now possible to use connect(), disconnect() instead of a async contextmanager in multi-loop calls (multithreading).

Fixed

  • Database calls are forwarded to subdatabase when possible. This unbreaks using not the returned database object.
  • force_rollback works also in multi-loop call (multithreading).
databasez - Version 0.9.6

Published by devkral about 2 months ago

Fixed

  • Databasez is now threadsafe (and multiloop safe).
databasez - Version 0.9.5

Published by devkral 2 months ago

Changed

  • Extract more options by default from query options.

Fixed

  • disconnect_hook was called too early.
  • connect_hook was called too late.
  • pos not passed through in fetch_one.
databasez - Version 0.9.4

Published by tarsil 2 months ago

Changed

  • Implement iterate in sqlalchemy base class (before it was a forward to batched_iterate).

Fixed

  • iterate and batched_iterate misconfigure connection.
databasez - Version 0.9.3

Published by devkral 2 months ago

Added

  • Add lazy_setup parameter for testclient.
  • disconnect and connect return if they performed the setup/cleanup.
  • Add backward compatible overwrites of defaults to the TestClient.

Fixed

  • Restore eager setup behavior in testclient.
  • Fix drop_dabase with postgresql.
  • Fix setup/disconnect hangups.
  • Fix ancient docs deps.
databasez - Version 0.9.2

Published by devkral 2 months ago

Added

  • Expose customization hooks for disconnects, connects.

Fixed

  • Testclient has issues with missing permissions.
  • Lazy global connection.
databasez - Version 0.9.1

Published by devkral 2 months ago

Added

  • Expose customization hooks for execute result parsing for subclasses of sqlalchemy.

Fixed

  • execute_many works now efficient and properly and returns autoincrement column ids.
  • execute returned not autoincrement id but defaults.
databasez - Version 0.9.0

Published by devkral 2 months ago

Added

  • force_rollback is now a descriptor returning an extensive ForceRollback object.
    • Setting True, False, None is now possible for overwriting the value/resetting to the initial value (None).
    • Deleting it resets it to the initial value.
    • Its trueness value evaluates to the current value, context-sensitive.
    • It still can be used as a contextmanager for temporary overwrites.

Fixed

  • Fixed refcount for global connections.

Changed

  • connect/disconnect calls are now refcounted. Nesting is now supported.
  • ACTIVE_TRANSACTIONS dict is not replaced anymore when initialized.
databasez - Version 0.8.5

Published by devkral 2 months ago

Added

  • Allow overwriting force_rollback when copying via passing Database as parameter.

Changed

  • The force_rollback parameter is now None by default.

Fixed

  • Fix typo in Testclient copying path.
databasez - Version 0.8.4

Published by devkral 2 months ago

Added

  • Provide __copy__ method for Database, DatabaseBackend.
  • Database is now an allowed type for Database (used for copying). Same is true for the DatabaseTestClient subclass.

Fixed

  • Speed of tests.
  • DATABASE_CONFIG_URLS had passwords not properly unquoted.
databasez - Version 0.8.3

Published by devkral 2 months ago

Added

  • DatabaseTestClient has now an option for changing the test prefix.

Fixed

  • DatabaseTestClient can now use the improvements in 0.8.0 too.
  • DatabaseTestClient is now tested.
  • Fix run_sync on Database objects.
databasez - Version 0.8.2

Published by devkral 2 months ago

Fixed

  • Cannot pass parameters to execute directly. Bulk_inserts not possible anymore.
databasez - 0.8.1

Published by devkral 3 months ago

Fixed

  • The dbapi2 dialect used only a single thread for all connections.
  • Some options were not translated into query options and vice versa.
databasez - Version 0.8.0

Published by tarsil 3 months ago

Added

  • batched_iterate.
  • jdbc dialect to load nearly all jdbc drivers (note: many features won't work).
  • dbapi2 dialect to load nearly all dbapi2 drivers (note: many features won't work).

Changed

  • Use psycopg3 by default. Autoupgrade postgres:// to postgres+psycopg://. Note: this behavior differs from sqlalchemy which still uses psycopg2 by default.
  • fetch_all uses now iterate as fallback.
  • hatch is now used for release management, cleaning.
  • Use mariadb for tests instead of mysql (resource problems).

Removed

  • aiopg support (no update for 2 years and better alternatives available).
  • Remove Makefile and other scripts.
  • Own run_sync implementation. Use asyncio.run instead.
databasez - Version 0.7.2

Published by tarsil 9 months ago

Fixed

  • Regression introduced by asyncio with DatabaseTestClient
databasez - Version 0.7.1

Published by tarsil 9 months ago

Fixed

  • Fix regression introduced by SQLAlchemy 2.0.25 with make_url.
databasez - Version 0.7.0

Published by tarsil 11 months ago

Fixed

  • DatabaseURL causing issues when special characters where being used for passwords.
    This limitation was introduced by the use of the urlsplit from urllib.