NAME
    DBIx::Diff::Schema - Compare schema of two DBI databases

VERSION
    This document describes version 0.04 of DBIx::Diff::Schema (from Perl
    distribution DBIx-Diff-Schema), released on 2015-01-07.

SYNOPSIS
     use DBIx::Diff::Schema qw(diff_db_schema diff_table_schema);

     my $res  = diff_db_schema($dbh1, 'dbname1', $dbh2, 'dbname2');

    To compare schemas of a single table:

     my $res = diff_table_schema($dbh1, 'dbname1', $dbh2, 'dbname2', 'tablename');

DESCRIPTION
    Currently only tested on Postgres and SQLite.

FUNCTIONS
  diff_db_schema($dbh1, $dbh2) -> any
    Compare schemas of two DBI databases.

    This function compares schemas of two DBI databases. You supply two
    "DBI" database handles and this function will return a hash:

     {
         # list of tables found in first db but missing in second
         deleted_tables => ['table1', ...],
 
         # list of tables found only in the second db
         added_tables => ['table2', ...],
 
         # list of modified tables, with details for each
         modified_tables => {
             table3 => {
                 deleted_columns => [...],
                 added_columns => [...],
                 modified_columns => {
                     column1 => {
                         old_type => '...',
                         new_type => '...',
                         ...
                     },
                 },
             },
         },
     }

    Arguments ('*' denotes required arguments):

    *   dbh1* => *obj*

        DBI database handle for the first table.

    *   dbh2* => *obj*

        DBI database handle for the second table.

    Return value: (any)

  diff_table_schema($dbh1, $dbh2, $table) -> any
    Compare schema of two DBI tables.

    This function compares schemas of two DBI tables. You supply two "DBI"
    database handles along with table name and this function will return a
    hash:

     {
         deleted_columns => [...],
         added_columns => [...],
         modified_columns => {
             column1 => {
                 old_type => '...',
                 new_type => '...',
                 ...
             },
         },
     }

    Arguments ('*' denotes required arguments):

    *   dbh1* => *obj*

        DBI database handle for the first table.

    *   dbh2* => *obj*

        DBI database handle for the second table.

    *   table* => *str*

        Table name.

    Return value: (any)

SEE ALSO
    DBIx::Compare to compare database contents.

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/DBIx-Diff-Schema>.

SOURCE
    Source repository is at
    <https://github.com/perlancar/perl-DBIx-Diff-Schema>.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=DBIx-Diff-Schema>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2015 by perlancar@cpan.org.

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

