Skip to content

Commit

Permalink
Support DBI driver options.
Browse files Browse the repository at this point in the history
Closes #109
  • Loading branch information
ehuelsmann committed Aug 7, 2023
1 parent 0ab9f2e commit 73f0c10
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
3 changes: 3 additions & 0 deletions lib/Workflow/Config.pm
Expand Up @@ -459,6 +459,9 @@ each 'action' may have any number of 'validator' hashrefs, each with a
use_uuid yes|no # all persister classes
driver $ # DBI persisters
options \@ # DBI persisters
name $ # DBI persisters
value $ # DBI persisters
dsn $ # DBI persisters
user $ # DBI persisters
password $ # DBI persisters
Expand Down
16 changes: 14 additions & 2 deletions lib/Workflow/Persister/DBI.pm
Expand Up @@ -21,7 +21,7 @@ Readonly::Scalar my $FALSE => 0;
$Workflow::Persister::DBI::VERSION = '1.57';

my @FIELDS = qw( _wf_fields _hist_fields handle dsn user password driver
workflow_table history_table date_format parser autocommit);
workflow_table history_table date_format parser autocommit options);
__PACKAGE__->mk_accessors(@FIELDS);


Expand All @@ -39,6 +39,13 @@ sub init {
for (qw( dsn user password date_format autocommit )) {
$self->$_( $params->{$_} ) if ( defined $params->{$_} );
}
my %options = ();
if ( defined $params->{options} ) {
for my $option ( @{ $params->{options} } ) {
$options{$option->{name}} = $option->{value};
}
}
$self->options( \%options );
$self->handle($self->create_handle);
my $driver
= $self->handle ? $self->handle->{Driver}->{Name} : ($params->{driver} || '');
Expand Down Expand Up @@ -74,7 +81,12 @@ sub create_handle {
}
my $dbh;
try {
$dbh = DBI->connect( $self->dsn, $self->user, $self->password )
$dbh = DBI->connect(
$self->dsn,
$self->user,
$self->password,
$self->options
)
or croak "Cannot connect to database: $DBI::errstr";
}
catch ($error) {
Expand Down

0 comments on commit 73f0c10

Please sign in to comment.