Introduction to the Schema Module
The Schema module provides a high level database-independent API for working with database schemas; it uses the SqlUtil module to provide the middle and low-level schema management logic from a database-independent representation of a database schema.
To use this module, use "%requires Schema"
in your code.
All the public symbols in the module are defined in the Schema namespace.
Classes provided by this module:
- AbstractSchema: base class for schema representation and management
- AbstractVersionedSchema: base class for versioned schema representation and management where the schema contains its current version
Schema Module Release History
Schema Module v1.4.2
- fixed reporting changes with negative verbose options (issue 4702)
Schema Module v1.4.1
- allow information about schema changes after alignments to be returned to the user (issue 4637)
Schema Module v1.4
- allow schema operations to be executed with no output (verbose < 0) (issue 3996)
Schema Module v1.3.1
- fixed a bug where too little information was passed to post schema alignment code (issue 3640)
Schema Module v1.3
- improved logging output when performing schema alignments (issue 3114)
- fixed AbstractSchema::checkExistence() (issue 3266)
Schema Module v1.2
- added the following public functions: (issue 1851)
- updated for complex types
Schema Module v1.1.1
- applied the force option (i.e. cascade) when aligning schemas (issue 1314)
Schema Module v1.1
- added the following public functions:
- added the following public constants:
- bug fixes:
- fixed AbstractSchema::combineOptions() to accept NOTHING as well as a valid option hash
- fixed a bug with "insert-only reference data" with the verbose option; the upsert strategy was changed to
UpsertSelectFirst
which means that insert-only reference data could also be updated
- fixed a bug where it was not possible to provide Database options when creating schemas (bug 501)
Schema Module v1.0