Maxtepkeev Architect Versions Save

A set of tools which enhances ORMs written in Python with more features

v0.6.0

3 years ago

Improvements:

  • Peewee: Added support for 3.x branch (Issue #73)
  • Django: Added support for 3.x branch (Issue #76)

Changes:

  • Backwards Incompatible: Peewee minimum supported version is 2.8.0
  • Backwards Incompatible: SQLObject minimum supported version is 3.5.0
  • Backwards Incompatible: Removed Python 2.6, 3.2, 3.3, 3.4 support

Bugfixes:

  • PostgreSQL: Tables with uppercase names weren't partitioned correctly (Issue #58)

v0.5.6

7 years ago
  • Added: Support for testing all databases in one go using DB=all environmental variable
  • Fixed: Django: Unable to partition tables in multi database configuration without default database
  • Fixed: PostgreSQL: Failed to partition a table if a reserved keyword was used as a column name (turned out this wasn't fixed properly in v0.5.4) (thanks to ra2er)

v0.5.5

7 years ago
  • Fixed: Django: Error handling with 1.10.x branch

v0.5.4

7 years ago
  • Added: Django: Issue #30 (Support for using database routers to determine correct database for a model in a multi database configuration)
  • Fixed: Peewee: Table partitioning was broken in Peewee >= 2.7.4 due to Peewee API changes
  • Fixed: PostgreSQL: Failed to partition a table if a reserved keyword was used as a column name

v0.5.3

8 years ago
  • Added: Tests are now built-in into source package distributed via PyPI
  • Fixed: Django: Issue #21 (Unable to partition a model with non-lazy translations)

v0.5.2

8 years ago
  • Fixed: PostgreSQL: Issue #14 (Error when trying to save a record into a table if partitioned column value had special characters inside, using string_firstchars and string_lastchars partition subtypes)
  • Fixed: PostgreSQL: Issue #11 (Error when trying to save a record into a table that was partitioned by a column that can be NULL, now if a column, that was used for partitioning, has NULL value it will be inserted into a special partition with _null postfix)
  • Fixed: SQLObject: Error when trying to partition a model with a field that has a default attribute set to some value

v0.5.1

8 years ago
  • Fixed: Issue #13 (MySQL support was broken in v0.5.0 released to PyPI)

v0.5.0

9 years ago
  • Added: Django: Support for multiple databases (Issue #9)
  • Added: Support for custom features, see docs for details
  • Changed: dsn partition option renamed to db to cover more use cases
  • Changed: DsnParseError exception renamed to OptionValueError to cover more use cases
  • Fixed: Django: Error when trying to partition a model with Django <= 1.5 in debug mode
  • Fixed: "No module named modulename.py" error when trying to specify model's module with .py extension at the end in partition command

v0.4.0

9 years ago
  • Added: wheel support
  • Added: SQLObject ORM support
  • Added: PostgreSQL: New integer (thanks to Nikolay Yarovoy), string_firstchars (thanks to Dmitry Brytkov) and string_lastchars range partition subtypes, see docs for details
  • Changed: range partition option renamed to constraint to better suit new partition subtypes
  • Changed: PostgreSQL: Triggers refactoring and speedups, don't forget to rerun partition command to apply new refactored triggers to the database
  • Fixed: architect.uninstall decorator wasn't able to restore modified model methods under Python 3

v0.3.0

9 years ago
  • Added: Documentation rewritten from scratch
  • Added: Introduced completely new API (almost 80% of Architect code was rewritten from scratch). All functionality is now provided by an architect.install decorator which dynamically injects requested feature, e.g. partition, into a model under the architect namespace, e.g. model.architect.partition. No more mixins, inheritance and nested classes with settings that pollute model's namespace. More information is available in the docs
  • Added: New operation feature which provide an abstraction layer to execute raw SQL statements which will work with any supported ORM, see docs
  • Fixed: Issue #8 (cannot import name string_literal error with PonyORM and PyMySQL if pymysql.install_as_MySQLdb() was used)
  • Fixed: Issue #7 (SQLite dummy backend was completely broken)
  • Fixed: Issue #4 (autocommit cannot be used inside a transaction error with Django if a model was used inside with transaction.atomic() block)
  • Fixed: Issue #2 (partition command was unable to find module with models to partition)
  • Fixed: Issue #1 (relation already exists error when trying to insert data into non-existent partition simultaneously from several queries) (thanks to Daniel Kontsek)