The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.89

  • ENHANCEMENTS:
  • Improved schema diffs for Postgres, particularly in the area of comparing two columns. Now we attempt to determine if two columns are logically equivalent, even if they might have minor variations (INT vs INTEGER type name, 'f' versus 'false' for BOOLEAN default, etc.).
  • Added Alzabo::SQLMaker->distinct_requires_order_by_in_select for the benefit of Pg, which requires that anything in the ORDER BY clause show up in the SELECT when you SELECT DISTINCT. This change is experimental, and may go away in future versions.
  • Removed support for passing order_by and group_by as a hash reference. This was deprecated in 0.59.
  • BUG FIXES:
  • When reverse engineering a Postgres schema, Alzabo did not look for its own sequences to determine if a column should be marked as sequenced.
  • Defer FK creation until all other DDL has been executed. This ensures that the table to which we're referring will be available.
  • When recreating a table during a SQL diff, make this an exception so we don't do other column diff/add/drop operations on the same table.
  • Fixed a test failure in 07-methodmaker.t when testing with Postgres. This failure may not have showed up often because it came from a test that depended on the DBMS returning rows in a speific order by without specifying an ORDER BY.
  • When a Postgres table is renamed, its sequences are also renamed.

Documentation

Documentation on Alzabo's design
Frequently Asked Questions
Introductory information about Alzabo
Alzabo and MySQL
Alzabo and PostgreSQL
A quick reference to methods in the Alzabo classes

Modules

A data modelling tool and RDBMS-OO mapper
Convert old data structures
Saves a set of changes as callbacks that can be backed out if needed
Column objects
Holds the type attribute for a column
Loads all Alzabo::Create::* classes
Column objects for use in schema creation
Column definition object for schema creation
Foreign key objects for schema creation.
Index objects for schema creation
Schema objects for schema creation
Table objects for schema creation
Creates constants used to turn on debugging
Alzabo base class for RDBMS drivers
MySQL specific Alzabo driver subclass
PostgreSQL specific Alzabo driver subclass
Creates all exception subclasses used in Alzabo.
Foreign key (relation) objects
Index objects
Auto-generate useful methods based on an existing schema
Base class for Alzabo RDBMS rulesets
MySQL specific database rules.
PostgreSQL specific database rules
Loads all Alzabo::Runtime::* classes
Column objects
Column definition objects
Base class for Alzabo cursors
Foreign key objects
Index objects
A handle representing an insert
Cursor that returns arrays of Alzabo::Runtime::Row objects
Row objects
Cursor that returns Alzabo::Runtime::Row objects
Row objects that have been deleted
Cached row objects that represent actual database rows
Row objects representing rows in the database
Row objects that are not in the database
Schema objects
Table objects
Implements a row cache for Alzabo
Alzabo base class for RDBMS drivers
Alzabo SQL making class for MySQL
Alzabo SQL making class for PostgreSQL
Schema objects
Table objects

Provides

in lib/Alzabo/MethodMaker.pm
in lib/Alzabo/MethodMaker.pm
in lib/Alzabo/Driver.pm
in lib/Alzabo/Exceptions.pm
in lib/Alzabo/Exceptions.pm
in lib/Alzabo/MethodMaker.pm
in lib/Alzabo/SQLMaker.pm