NAME

SQL::Admin - Maintain database schemas

SYNOPSIS

use SQL::Admin;

# Merge multiple SQL files
my $catalog = SQL::Admin
   ->get_catalog
   ->load ('DB2', { file => [ 'create-schema.sql', 'update-001.sql' ] })
   ->save ('Pg', { file  => [ 'output.sql' ] });

# ... deploy catalog
$catalog->save ('Pg::DBI', { dbdsn  => ... });


# Sync SQL files and db
my $src = SQL::Admin->get_catalog;
   ->load ('Pg::DBI', { dbdsn => ... });

my $dst = SQL::Admin->get_catalog;
   ->load ('Pg', { file => [ 'create-schema.sql' ] });

my $diff = SQL::Admin->compare ($src, $dst);

if ($diff->is_difference) {
    $diff->save ('Pg');
    $diff->save ('Pg::DBI', { dbdsn => ... });
}

DESCRIPTION