MySQL-Util
view release on metacpan or search on metacpan
lib/MySQL/Util/Lite/Table.pm view on Meta::CPAN
package MySQL::Util::Lite::Table;
our $VERSION = '0.01';
use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use MySQL::Util::Lite::ForeignKey;
use MySQL::Util::Lite::PrimaryKey;
use MySQL::Util::Lite::AlternateKey;
with 'MySQL::Util::Lite::Roles::NewColumn';
has name => (
is => 'ro',
isa => 'Str',
required => 1,
);
has schema_name => (
is => 'ro',
isa => 'Str',
required => 1,
);
has columns => (
is => 'rw',
isa => 'ArrayRef[MySQL::Util::Lite::Column]',
lazy => 1,
builder => '_build_columns',
);
has _util => (
is => 'ro',
isa => 'MySQL::Util',
required => 1,
);
method get_fq_name {
return sprintf( '%s.%s', $self->schema_name, $self->name );
}
method get_parent_tables (Str :$column_name) {
if ($column_name) {
return $self->_get_column_parent_tables( column_name => $column_name );
}
else {
return $self->_get_parent_tables;
}
}
method _get_column_parent_tables (Str :$column_name) {
my %seen;
my @ret;
my @fks = $self->get_foreign_keys;
foreach my $fk (@fks) {
foreach my $con ( @{ $fk->column_constraints } ) {
( run in 0.487 second using v1.01-cache-2.11-cpan-39bf76dae61 )