LasTres/lib/LasTres/Schema.pm

41 lines
926 B
Perl

package LasTres::Schema;
our $VERSION = 1;
use v5.36.0;
use strict;
use warnings;
use feature 'signatures';
use LasTres;
use parent 'DBIx::Class::Schema';
__PACKAGE__->load_namespaces();
sub Schema($class) {
my $app = LasTres->new;
my $config = $app->{config};
my $database_config = $config->{database};
my $dbname = $database_config->{dbname};
my $host = $database_config->{host};
my $port = $database_config->{port};
my $user = $database_config->{user};
my $password = $database_config->{password};
my $dsn = 'dbi:Pg:';
if (!defined $dbname) {
die "The key database/dbname must be configured.";
}
$dsn .= "dbname=$dbname";
if (defined $host) {
$dsn .= ";host=$host";
}
if (defined $port) {
$dsn .= ";port=$port";
}
# Undef is perfectly fine for username and password.
return $class->connect($dsn, $user, $password);
}
1;