issue DB schema statements each within savepoints

This commit is contained in:
Oliver Gorwits
2018-05-09 06:07:30 +01:00
parent 3d27184b1c
commit d959adde36
4 changed files with 34 additions and 2 deletions

View File

@@ -11,7 +11,7 @@ __PACKAGE__->load_namespaces(
);
our # try to hide from kwalitee
$VERSION = 52; # schema version used for upgrades, keep as integer
$VERSION = 53; # schema version used for upgrades, keep as integer
use Path::Class;
use File::ShareDir 'dist_dir';
@@ -20,7 +20,7 @@ our $schema_versions_dir = Path::Class::Dir->new( dist_dir('App-Netdisco') )
->subdir('schema_versions')->stringify;
__PACKAGE__->load_components(qw/
Schema::Versioned
+App::Netdisco::DB::SchemaVersioned
+App::Netdisco::DB::ExplicitLocking
/);

View File

@@ -0,0 +1,17 @@
package App::Netdisco::DB::SchemaVersioned;
use strict;
use warnings;
use base 'DBIx::Class::Schema::Versioned';
use Try::Tiny;
use DBIx::Class::Carp;
sub apply_statement {
my ($self, $statement) = @_;
try { $self->storage->txn_do(sub { $self->storage->dbh->do($statement) }) }
catch { carp "SQL was: $statement" if $ENV{DBIC_TRACE} };
}
1;