NAME

DBIx::Class::Schema::Diff::SchemaDiff - Data representation of schema for diffing

SYNOPSIS

use DBIx::Class::Schema::Diff::SchemaData;

my $SD = DBIx::Class::Schema::Diff::SchemaData->new( 
 schema => 'My::Schema'
);

$SD = DBIx::Class::Schema::Diff::SchemaData->new( 
 schema => $schema
);

# Get hashref representation of schema:
my $hashref = $SD->data;

my $SD2 = DBIx::Class::Schema::Diff::SchemaData->new( 
 data => $hashref
);

# Dump as JSON to file:
$SD2->dump_json_file('/path/to/schema_data.json');

DESCRIPTION

Object class representing a DBIx::Class::Schema. The old_schema and new_schema build params in DBIx::Class::Schema::Diff are dynamically coerced into objects of this class.

This class can also be instantiated directly to dump/save the current schema data for later use by DBIx::Class::Schema::Diff (See its SYNOPSIS).

METHODS

new

Create a new DBIx::Class::Schema::Diff::SchemaData instance. The following build options are supported:

schema

DBIx::Class schema supplied as a class name or connected object instance. If this param is supplied it will be used to build data.

data

Can be supplied instead of schema to use previously generated data.

dump_json

Returns data as a serialized JSON string.

dump_json_file

Writes output of dump_json() to the supplied filename as long as it doesn't already exists. If the file already exists, an exception is thrown.

prune

Accepts a list of one or more prune keywords and returns a new SchemaData object with the specified information pruned/stripped from the data. Currently supported prune keywords:

isa
constraints
relationships
columns
private_col_attrs

fingerprint

Returns a sha1-based fingerprint string of the current data. Note that prune will result in different fingerprints. An example fingerprint is schemsum-448d754e40e09e0. The 'schemsum' prefix is just for fun (and also provides an easy way to eyeball these values down the road).

SEE ALSO

AUTHOR

Henry Van Styn <vanstyn@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by IntelliTree Solutions llc.

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