Package: architect
Architect is a set of tools which enhances ORMs written in Python with more features and simplifies
different database related complex tasks.FeaturesSupported ORMsDjango>= 1.4Peewee>= 2.8.0Pony>= 0.5.0SQLAlchemy>= 1.0.0SQLObject>= 3.5.0Supported DBsPostgreSQL>= 8.0MySQL>= 5.5Supports Python 2.7, 3.5 - 3.8Extensively documentedDependenciesArchitect has no required external dependencies except for the ORM it will be used with.InstallationTo install Architect, simply:$pipinstallarchitector:$easy_installarchitectDocumentationDocumentation is available athttps://architect.readthedocs.io.Contacts and SupportI will be glad to get yourfeedback,pull requests,issues,
whatever. Feel free to contact me for any questions.Donations and SponsorshipIf you like this project and want to support it you have several options:Just give this project a star at theGitHubrepository.Become a sponsor. Contact me viatepkeev at gmail dot comif you are interested in becoming a sponsor
and we will discuss the terms and conditions.ThanksPremiumSoft for supporting this project by providingOpen Source LicenseofNavicat.Copyright and LicenseArchitect is licensed under Apache 2.0 license. Check theLICENSEfor details.Changelog0.6.0 (2020-11-14)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.0Backwards Incompatible:SQLObject minimum supported version is 3.5.0Backwards Incompatible:Removed Python 2.6, 3.2, 3.3, 3.4 supportBugfixes:PostgreSQL: Tables with uppercase names weren’t partitioned correctly (Issue #58)0.5.6 (2017-05-01)Added: Support for testing all databases in one go usingDB=allenvironmental variableFixed: Django: Unable to partition tables in multi database configuration withoutdefaultdatabaseFixed: 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 tora2er)0.5.5 (2016-10-08)Fixed: Django: Error handling with 1.10.x branch0.5.4 (2016-07-04)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 changesFixed: PostgreSQL: Failed to partition a table if a reserved keyword was used as a column name0.5.3 (2015-11-08)Added: Tests are now built-in into source package distributed via PyPIFixed: Django:Issue #21(Unable to partition a
model with non-lazy translations)0.5.2 (2015-07-31)Fixed: PostgreSQL:Issue #14(Error when trying
to save a record into a table if partitioned column value had special characters inside, usingstring_firstcharsandstring_lastcharspartition subtypes)Fixed: PostgreSQL:Issue #11(Error when trying
to save a record into a table that was partitioned by a column that can beNULL, now if a column, that
was used for partitioning, hasNULLvalue it will be inserted into a special partition with_nullpostfix)Fixed: SQLObject: Error when trying to partition a model with a field that has adefaultattribute
set to some value0.5.1 (2015-06-08)Fixed:Issue #13(MySQL support was broken
in v0.5.0 released to PyPI)0.5.0 (2015-05-08)Added: Django:Issue #9(Support for multiple
databases)Added: Support for custom features, seedocsfor detailsChanged:dsnpartition option renamed todbto cover more use casesChanged:DsnParseErrorexception renamed toOptionValueErrorto cover more use casesFixed: Django: Error when trying to partition a model with Django <= 1.5 in debug modeFixed: “No module named modulename.py” error when trying to specify model’s module with .py extension
at the end in partition command0.4.0 (2015-04-18)Added:wheelsupportAdded:SQLObjectORM supportAdded: PostgreSQL: Newinteger(thanks toNikolay Yarovoy),string_firstchars(thanks toDmitry Brytkov) andstring_lastcharsrange partition subtypes, seedocsfor detailsChanged:rangepartition option renamed toconstraintto better suit new partition subtypesChanged: PostgreSQL: Triggers refactoring and speedups, don’t forget to rerunpartitioncommand to
apply new refactored triggers to the databaseFixed:architect.uninstalldecorator wasn’t able to restore modified model methods under
Python 30.3.0 (2015-04-05)Added: Documentation rewritten from scratchAdded: Introduced completely new API (almost 80% of Architect code was rewritten from scratch).
All functionality is now provided by anarchitect.installdecorator which dynamically injects
requested feature, e.g. partition, into a model under thearchitectnamespace, e.g.model.architect.partition. No more mixins, inheritance and nested classes with settings that
pollute model’s namespace. More information is available in thedocsAdded: Newoperationfeature which provide an abstraction layer to execute raw SQL statements
which will work with any supported ORM, seedocsFixed:Issue #8(cannot import name string_literalerror 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 transactionerror with Django if a model was used insidewith transaction.atomic()block)Fixed:Issue #2(partitioncommand was unable to find module with models to partition)Fixed:Issue #1(relation already existserror when trying to insert data into non-existent partition simultaneously from
several queries) (thanks toDaniel Kontsek)0.2.0 (2014-07-19)Added: MySQL: Range partitioning support0.1.0 (2014-07-13)Initial release