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

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