The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DBIx::Diff::Struct - Compare structure of two DBI databases

VERSION

This document describes version 0.03 of DBIx::Diff::Struct (from Perl distribution DBIx-Diff-Struct), released on 2015-01-03.

SYNOPSIS

 use DBIx::Diff::Struct qw(diff_db_struct diff_table_struct);

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

See function's documentation for sample result structure.

DESCRIPTION

Currently only tested on Postgres and SQLite.

FUNCTIONS

diff_db_struct($dbh1, $dbh2) -> any

Compare structure of two DBI databases.

This function compares structures 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_struct($dbh1, $dbh2, $table) -> any

Compare structure of two DBI tables.

This function compares structures 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) =head1 SEE ALSO

DBIx::Compare to compare database contents.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/DBIx-Diff-Struct.

SOURCE

Source repository is at https://github.com/perlancar/perl-DBIx-Diff-Struct.

BUGS

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

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.