NAME

DBIO::Oracle::Deploy - Deploy and upgrade Oracle schemas via test-deploy-and-compare

VERSION

version 0.900000

DESCRIPTION

DBIO::Oracle::Deploy orchestrates schema deployment and upgrades for Oracle using the test-deploy-and-compare strategy.

For upgrades it:

1. Introspects the live database via all_* views
2. Opens a SAVEPOINT on the live connection (Oracle has no cheap throwaway database like PostgreSQL's CREATE DATABASE)
3. Deploys the desired schema (from DBIO classes) into that context
4. Introspects that schema the same way
5. Computes the diff between the two models using DBIO::Oracle::Diff
6. Rolls back to the savepoint so the test deploy never persists

The shared orchestration (install, apply, upgrade) is inherited from DBIO::Deploy::Base; this class supplies the three class-name hooks and the SAVEPOINT-based "_build_target_model" -- the real engine seam.

my $deploy = DBIO::Oracle::Deploy->new(
    schema => MyApp::DB->connect($dsn),
);
$deploy->install;                       # fresh
my $diff = $deploy->diff;              # or step-by-step
$deploy->apply($diff) if $diff->has_changes;
$deploy->upgrade;                      # convenience

METHODS

_build_target_model

The desired-state model. Oracle has no cheap throwaway database, so test-deploy-and-compare runs against the live connection inside a SAVEPOINT: deploy the install DDL, introspect the result, then ROLLBACK TO SAVEPOINT to undo the partial deploy. The rollback runs unconditionally inside the eval -- even when introspect or deploy throws, the connection state must be restored.

AUTHOR

DBIO & DBIx::Class Authors

COPYRIGHT AND LICENSE

Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 108:

Unknown directive: =seealso