issue DB schema statements each within savepoints
This commit is contained in:
@@ -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
|
||||
/);
|
||||
|
||||
|
||||
17
lib/App/Netdisco/DB/SchemaVersioned.pm
Normal file
17
lib/App/Netdisco/DB/SchemaVersioned.pm
Normal 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;
|
||||
Reference in New Issue
Block a user