With `intelligent` we mean the capability of self-adaption, understanding various situations.
Mother could be considered as a Object Relational Mapper with a strong introspection. In fact, configuration files, tables, fields and keys declarations are not needed, because
Mother knows the database structure herself.
Mother works with PostgreSQL and, for now, only this database is supported: in fact, the introspective nature of Mother is based on postgres meta queries.
The database interface is developed over the very good Psycopg module.
Mother is released under the BSD License and is alreay used in production environment.
Why a new ORM? Because his philosophy!
We want to develop an intelligent ORM: Mother is able to handle foreign keys, relations and children automatically, understanding the database structure.
We don't want to write models, xml or configuration files. The mothermapper tool does all the work, once.
The ORM has to be light, fast and simple.
Extensions: building plugins has to be easy and fast.
We don't want the Definitive ORM, bread-maker, but a free and powerful framework: with Mother you don't have to adapt your style code or your database to the ORM. An exaustive ORM is just the pure SQL.
What About Features?
The Mother module offers a set of classes to handle different situations. In particular, it's possible to represent a table with one class. Binding a table to a class is the begin of the Mother Art.
In fact, the class knows tables relationships: handling children and relations is powerful and easy: foreign keys and relationships informations are not needed: Mother knows them and is able to fill records with the correct values.
Moreover, the methods used to insert children and relations are auto-created and self-adapting.
The Mother classes can be declared by the user: it's sufficient to inherit from some Mother class: so, class extensions are very easy to code. Some extension is already provided, as the Triggers feature, but writing others
plugins is simple and immediate.
The database connection is very comfortable: credentials have to be specified in a configuration file: after that, the connection is transparent.
Mother implements a connection Pool to be used in a Threaded Environemnt.
The database transactions are implemented in a particular way. It's possible to call nested transactions, so that you don't have to worry about the nested calls to the commit or the rollback statement. This allows to handle
transactions in different levels and indipendently.
Mother comes with a logger: Speaker, that supports standard output, log file (with rotation capability), syslog and SMTP.
If you are wondering if Mother has a slow computation model, the answer is no: the Mother knowledge is made once (by Mother tools) and stored to two files. Mother is fast.
What's New in This Release:
· The mothermapper -d option now also works on complex PostgreSQL schemes.