Improvements:
- Peewee: Added support for 3.x branch (Issue #73)
- Django: Added support for 3.x branch (Issue #76) (thanks to wakita181009)
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)
- 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)
- Fixed: Django: Error handling with 1.10.x branch
- 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
- 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)
- 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
andstring_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, hasNULL
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
- Fixed: Issue #13 (MySQL support was broken in v0.5.0 released to PyPI)
- Added: Django: Issue #9 (Support for multiple databases)
- Added: Support for custom features, see docs for details
- Changed:
dsn
partition option renamed todb
to cover more use cases - Changed:
DsnParseError
exception renamed toOptionValueError
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
- Added: wheel support
- Added: SQLObject ORM support
- Added: PostgreSQL: New
integer
(thanks to Nikolay Yarovoy),string_firstchars
(thanks to Dmitry Brytkov) andstring_lastchars
range partition subtypes, see docs for details - Changed:
range
partition option renamed toconstraint
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
- 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 thearchitect
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 ifpymysql.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 insidewith 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)
- Added: MySQL: Range partitioning support
- Initial release