Changes for version 0.900002 - 2026-07-13
- Tests
- Four tests shipped in 0.900001 depended on things that don't hold on a fresh CPAN Testers smoker: a hardcoded developer-machine path, and optional modules (Moose, Moo, SQL::Translator) pulled in either directly or via a no-arg load_classes() namespace sweep, none of it guarded for portability. No lib/ runtime behaviour was affected.
- t/serialize/01-inflatecolumn.t: the YAML-safety subtest's _read_source() looked up %INC with package-form keys (Foo::Bar), which never match -- %INC is always keyed in path form -- so it silently fell back to a hardcoded absolute path that only existed on one machine. Fixed the key conversion; the now-unneeded fallback path was dropped.
- t/102load_classes.t: a no-arg load_classes() sweep of DBIO::Test::Schema::* incidentally pulled in four standalone OO-demo schemas (Moose/MooseSugar/Moo/MooCake) that hard-require optional Moose/Moo and died fatally -- instead of skipping gracefully -- when those are absent. The four schemas moved out to DBIO::Test::{Moose,MooseSugar,Moo,MooCake}Schema, siblings of DBIO::Test::Schema rather than members of the swept namespace, and the test now loads only the deliberately-broken fixture class it actually means to exercise. dbio-sqlite's consuming tests (t/moose-moose.t, t/moose-sugar.t, t/moo-cake.t) followed the rename.
- t/cake_comprehensive.t: an unguarded require SQL::Translator::Schema::Table for the legacy SQLT deploy-hook path
- SQL::Translator was never declared as a dependency at all. Wrapped in SKIP; added as a test-only cpanfile recommends.
- t/deployment_handler.t: use DBIO::Test::Schema::Moo (now DBIO::Test::MooSchema) was missing the BEGIN-time Moo guard used everywhere else in the suite.
- Documentation
- DBIO::Manual::Heritage: the OO-framework demo schemas are now listed under their new sibling names (DBIO::Test::{Moo,Moose,MooCake, MooseSugar}Schema) with a note on why they sit beside, rather than under, DBIO::Test::Schema -- a no-arg load_classes() sweep of that namespace must not drag in the optional Moose/Moo dependency.
Documentation
List or deploy the DBIO agent skills available to your app
CLI for DBIO schema administration
Dump a database schema to DBIO Result classes
Index of the Manual
Developing DBIO Components
Miscellaneous recipes
Guide to the DBIO documentation set
Simple CD database example
Frequently Asked Questions (in theory)
Feature overview with links to the relevant DBIO documentation
Clarification of terms used.
Everything that changed from DBIx::Class to DBIO
Introduction to DBIO
Manual on joining tables with DBIO
Step-by-step guide for migrating an existing DBIx::Class codebase to DBIO
Up and running with DBIO in 10 minutes
Conventions for reading and writing DBIO POD
Representing a single result (row) from a DB query
Troubleshooting common DBIO problems
Run DBIO tests against Kubernetes-provisioned databases
Modules
Native relational mapping for Perl, built on DBI
Credential lifecycle for DBIO connections
One credential identity pinned to one host
Single-DSN AccessBroker drop-in replacement
Credential rotation with TTL
per-driver base->native column type resolver (one-way)
Lightweight schema administration helper for DBIO
Meta-infrastructure base for all DBIO internal classes
DDL-like DSL for defining DBIO result classes
Sugar syntax for defining DBIO result classes
Create sugar for DBIO components
Error reporting utilities for DBIO
Row-level change tracking component
ResultSource definition for per-source changelog tables
Schema-level change tracking component
ResultSource definition for the changelog_set table
Shared utilities for changelog table source definitions
Component loading and management for DBIO
Standard base class for DBIO result classes
Abstract object representing a query cursor on a resultset.
Base class for DBIO driver deploy orchestrators
Deploy base for drivers that diff against a temporary database
Extensible DBIO deployment
Parent class for DeploymentHandlers
Native DBIO driver deploy (no SQL::Translator needed)
Interface for deploy methods
Interface for version storage methods
Interface for version methods
Obvious version progressions
Standard version storage implementation
Attach this component to your schema to ensure you stay up to date
The typical way to store versions in the database
Base class for DBIO driver diff orchestrators
Engine-agnostic comparison helpers for DBIO diff operations
Base class for DBIO driver diff operation objects
One-way encode selected columns (e.g. passwords)
Exception objects for DBIO
Automatically convert column data
Future interface contract for async DBIO operations
Dependency-free immediate Future for DBIO's 'immediate' async mode
Driver-agnostic Result class generator for DBIO
Relationship inference for DBIO::Generate
DBIO::Cake DSL emitter for DBIO::Generate
DBIO::Candy DSL emitter for DBIO::Generate
Moo-style emitter for DBIO::Generate
Moose-style emitter for DBIO::Generate
Vanilla-style Result class emitter for DBIO::Generate
Safe Perl-literal emission helpers for DBIO::Generate styles
Accessor methods for serialized hash columns
Automatically create references from column data
Auto-create DateTime objects from date and datetime columns.
Inflators to serialize data structures for DBIO
JSON Inflator
MessagePack Inflator
YAML Inflator
Base class for DBIO driver introspectors
DBI-based introspection via standard metadata APIs
Enable Moo attributes in DBIO result classes
Enable Moose attributes in DBIO result classes
Optional dependency declarations for DBIO
Maintain a position column over an ordered list of rows
Primary Key class
Automatic primary key class (compatibility shim)
Enhanced populate with cross-source references
Relationship declaration helpers for DBIO result classes
Inter-table relationships
Declare a foreign-key relationship to a parent row
Cascade delete and update actions across relationships
Schema-time relationship method synthesis (accessors and proxies)
Declare a one-to-many relationship
Declare a one-to-one relationship
Load all standard relationship declaration components
Declare a many-to-many relationship via a bridge table
Replicated storage support for DBIO
Wrapper base class for replicated backends
Master backend wrapper
Replicant backend wrapper
Base class for replicated read balancing
Always use the first active replicant
Randomly choose an active replicant
Prefix trace output with replicated backend identity
Manage a pool of replicant backends
Replicated DBI storage coordinator
Get raw hashrefs from a resultset
Lazy query object for fetching and manipulating DBIO rows
help when paging through sets of results
Convenience wrapper for working with a single ResultSet column
Metadata object describing a table, view, or query source
Build row-inflating parsers from result source metadata
Assemble row-parser source code for simple and collapsing queries
Table object
ResultSource object representing a view
Serializable pointers to ResultSource instances
Proxy result source methods onto a result class
Basic row methods
Shared SQL utility functions for DBIO
An SQL::Abstract-based SQL maker class
Class containing generic enhancements to SQL::Abstract
Schema class and connection container for DBIO applications
compile a base-type schema into one engine's native target model
portable base-type vocabulary for multi-engine schemas
Runtime access to the AI agent skills bundled with DBIO
Generic Storage Handler
Base class for async storage implementations
Generic pinned-connection context for async transactions
Execute code blocks with transaction wrapping and retry logic
Runtime C3 composition of storage extension layers over a base storage class
DBI storage handler
DBI-specific AccessBroker integration for DBIO storage
Storage component for RDBMS requiring explicit placeholder typing
Two-tier capability probing for DBI storage drivers
Object representing a query cursor on a resultset.
Native data type and LOB classification helpers for DBI storage
Storage Component for Sybase ASE and MSSQL for Identity Inserts / Updates
Some DBDs have poor to no support for bind variables
Base class for ODBC drivers
Storage component for RDBMSes supporting GUID types
Strptime-backed datetime format base for driver format classes
Pretty Tracing DebugObj
Abstract connection pool interface for async storage
Shared connection pool mechanics for async DBIO drivers
SQL analysis and query rewrite utilities
SQL Statistics
Scope-based transaction handling
Test utilities for DBIO and DBIO driver distributions
Base class for DBIO test Result classes
Base class for DBIO test ResultSet classes
Test cursor subclass for DBIO storage testing
Minimal datetime parser for DBIO offline test storage
Test component for sqlt_deploy_hook testing
Test result class for dynamic foreign column resolution
Test result class for dynamic foreign column joining
Test component that fails to load due to missing true value
Test component for ensure_class_loaded testing
Test class for foreign component loading
Test component loaded as a foreign component
Provision temporary database pods in Kubernetes for DBIO testing
Test schema with Moo + DBIO::Cake result classes
Moo + Cake test result class for the artist table
Moo + Cake test result class for the cd table (no custom ResultSet)
Custom Moo-based ResultSet for the MooCake artist source
Test schema with Moo-enabled result classes
Moo-enabled test result class for the artist table
Moo-enabled test result class for the cd table
Custom Moo-based ResultSet for the artist source
Test schema with Moose-enabled result classes
Moose-enabled test result class for the artist table
Moose-enabled test result class for the cd table
Custom Moose-based ResultSet for the artist source
Test schema with Moose + DBIO::Cake result classes
Moose + Cake test result class for the artist table
Moose + Cake test result class for the cd table (no custom ResultSet)
Custom Moose-based ResultSet for the MooseSugar artist source
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test fixture for namespace resolution
Test component for optional component loading
Test schema for ResultSetManager component testing
Test result class for ResultSetManager component testing
Test SQLMaker subclass with select call counting
SQL statement tracing object for test diagnostics
Standard test schema for the DBIO ecosystem
Test result class for the artist table
Test result class for the artist_guid table (UNIQUEIDENTIFIER PK)
Test result class for custom source name on the artist table
Test result subclass of the artist table
Test result class for the artist_undirected_map table
Test result class for the cd_artwork table
Test result class for the artwork_to_artist table
Test result class for the bindtype_test table
Test result class for the bookmark table
Test result class for the books table
Test result class for the cd table
Test result class for the cd_to_producer table
Test result class for the collection table
Test result class for the collection_object table
Test result class for the computed_column_test table
Test result class using a custom SQL query as source
Test result class for the dummy table
Test result class for the employee table with ordering
Test result class for the encoded table
Test result class for the event table with datetime inflation
Test result class for the event_small_dt table with smalldatetime inflation
Test result class for the forceforeign table
Test result class for the fourkeys table
Test result class for the fourkeys_to_twokeys table
Test result class for the genre table
Test result class for the images table
Test result class for the liner_notes table
Test result class for the link table
Test result class for the lyric_versions table
Test result class for the lyrics table
Test result class for the money_test table (MONEY column)
Test result class for a table with no primary key
Test non-result class for load_classes error testing
Test result class for the onekey table
Test result class for the owners table
Test result class for the producer table
Test result class for columns with punctuated names
Test schema using DBIO::Cake syntax
Test Cake result class for the artist table
Test Cake result class for the cd table
Test result class for the self_ref table
Test result class for the self_ref_alias table
Test result class for the serialized table
Test result class for the tags table
Test result class for timestamp primary key handling
Test result class for the track table
Test result class for the treelike table
Test result class for the twokeytreelike table
Test result class for the twokeys table
Test result class for the typed_object table
Test virtual view result class for 1999 CDs
Test virtual view result class for 2000 CDs
Fake storage for testing SQL generation without a database
Test component with intentional syntax error
Test component with intentional syntax error
Test component with intentional syntax error
Test class for taint mode with auto-loading
Test class for taint mode with manual loading
Test result class for taint mode namespace loading
Utility functions for DBIO test suite
Memory leak detection and tracing for DBIO tests
Override CORE::GLOBAL::require for testing
RAII guard that restores the umask on scope exit
Automatically set and update timestamp columns
Automatically populate UUID columns on insert
Internal utility functions for DBIO
Schema class for versioning support
Result class for the schema versions table
Bring your own database magic!
Examples
- examples/Benchmarks/benchmark_datafetch.pl
- examples/Benchmarks/benchmark_hashrefinflator.pl
- examples/Schema/MyApp/Schema.pm
- examples/Schema/MyApp/Schema/Result/Artist.pm
- examples/Schema/MyApp/Schema/Result/Cd.pm
- examples/Schema/MyApp/Schema/Result/Track.pm
- examples/Schema/MyApp/SchemaCake.pm
- examples/Schema/MyApp/SchemaCake/Result/Artist.pm
- examples/Schema/MyApp/SchemaCake/Result/Cd.pm
- examples/Schema/MyApp/SchemaCake/Result/Track.pm
- examples/Schema/MyApp/SchemaCandy.pm
- examples/Schema/MyApp/SchemaCandy/Result/Artist.pm
- examples/Schema/MyApp/SchemaCandy/Result/Cd.pm
- examples/Schema/MyApp/SchemaCandy/Result/Track.pm
- examples/Schema/MyApp/SchemaVanilla.pm
- examples/Schema/MyApp/SchemaVanilla/Result/Artist.pm
- examples/Schema/MyApp/SchemaVanilla/Result/Cd.pm
- examples/Schema/MyApp/SchemaVanilla/Result/Track.pm
- examples/Schema/insertdb.pl
- examples/Schema/testdb.pl