Alzabo is a program and a module suite, with two core functions. Its first
use is as a data modelling tool. Through either a schema creation
interface or a perl program, you can create a set of schema, table,
column, etc. objects to represent your data model. Alzabo is also capable
of reverse engineering your data model from an existing system.
Its second function is as an RDBMS to object mapping system. Once you have
created a schema, you can use the Alzabo::Runtime::Table and
Alzabo::Runtime::Row classes to access its data. These classes offer a
high level interface to common operations such as SQL SELECT, INSERT,
DELETE, and UPDATE commands.
Please see http://www.alzabo.org/ for more info. Alzabo can be installed
via the CPAN shell or downloaded from SourceForge.
0.70 November 21, 2002
- The exception thrown when you attempt to set a non-nullable column
to NULL is now an Alzabo::Exception::NotNullable exception, instead of
an Alzabo::Exception::Params exception. In the interests of backwards
compatibility, the former is a subclass of the latter.
- Improved debugging options. See the new Alzabo::Debug module for
- Fixed Alzabo::Table->primary_key, which would die when no primary
key existed and it was called in an scalar context. In an array
context, all the columns in the table were returned. Reported by Eric
- Alzabo::ObjectCache::Sync::RDBMS created a table that it would later
consider incorrect. This made this module unusable.
- Alzabo::ObjectCache::Sync::RDBMS caused weird random errors when
used with MySQL's InnoDB tables.
- In the schema creator, the link to the graph page, and the link _on_
the graph page to the image, were both broken.
- Alzabo was allowing you to rename a column to a name of an existing
column in a table. Similarly, a table could be renamed to the same
name as an existing table. Doing this could trash a schema.
- Alzabo::Runtime::Table->one_row would return undef if no row was
found, which in a list context evaluated to a true value.
- Allow no_cache option when calling Alzabo::Runtime::Schema->join.
- When displaying SQL, the schema creator now makes sure to
HTML-escape it, because it's possible to have HTML in there (in a
default, most likely).
- The "children" method generated by Alzabo::MethodMaker did not allow
you to add additional where clause constraints to the query.