EntityModel
view release on metacpan or search on metacpan
lib/EntityModel/DB.pm view on Meta::CPAN
die $_;
};
}
=head2 update
Update information
=cut
sub update {
my $self = shift;
my %args = @_;
$self->_fork_guard;
my $sql = $args{sql};
my $dbh = $self->dbh;
my $sth = $dbh->prepare($sql);
$sth->execute(@{$args{param}});
$args{on_complete}->($sth) if $args{on_complete};
return $sth;
lib/EntityModel/Model.pm view on Meta::CPAN
logDebug("Import complete");
return $self;
}
=head2 update_from
Update this entity model so that it matches the given model.
=cut
sub update_from {
my ($self, $src) = @_;
my %srcNames = map { $_->name => $_ } $src->entity->list;
foreach my $e ($self->entity->list) {
if(exists $srcNames{$e->name}) {
my $es = delete $srcNames{$e->name};
# Mark this for update unless it's the same as the one we have already
if($es->matches($e)) {
logDebug("Should keep [%s]", $e->name);
} else {
logDebug("Should update [%s]", $e->name);
lib/EntityModel/Model.pm view on Meta::CPAN
}
sub create_table {
my $self = shift;
my $tbl = shift;
logDebug("Create table " . $tbl->name);
$self->entity->push($tbl);
return $self;
}
sub update_table {
my $self = shift;
my $src = shift;
my ($e) = grep { $_->name eq $src->name } $self->entity->list;
logDebug("Found table [%s] for [%s]", $e->name, $src->name);
my $dst = $self->entity_map->get($src->name);
logDebug("Update table [%s], dest has fields: [%s]", $src->name, join(',', map { $_->name // "undef" } $dst->field->list));
my @add = grep { !$dst->field_map->get($_->name) } $src->field->list;
logDebug("Want to add [%s]", join(',', map { $_->name } @add));
$self->add_field_to_table($dst, $_) foreach @add;
return $self;
( run in 0.489 second using v1.01-cache-2.11-cpan-49f99fa48dc )