The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Teng::Schema::Dumper - Schema code generator

SYNOPSIS

use DBI;
use Teng::Schema::Dumper;

my $dbh = DBI->connect(@dsn) or die;
print Teng::Schema::Dumper->dump(
    dbh       => $dbh,
    namespace => 'Mock::DB',
    inflate   => +{
        user => q|
            use Mock::Inflate::Name;
            inflate 'name' => sub {
                my ($col_value) = @_;
                return Mock::Inflate::Name->new(name => $col_value);
            };
            deflate 'name' => sub {
                my ($col_value) = @_;
                return ref $col_value ? $col_value->name : $col_value . '_deflate';
            };
            inflate qr/.+oo/ => sub {
                my ($col_value) = @_;
                return Mock::Inflate::Name->new(name => $col_value);
            };
            deflate qr/.+oo/ => sub {
                my ($col_value) = @_;
                return ref $col_value ? $col_value->name : $col_value . '_deflate';
            };
        |,
    },
);

DESCRIPTION

This module generates the Perl code to generate Teng::Schema instance.

You can use it by do "my/schema.pl" or embed it to the package.

METHODS

Teng::Schema::Dumper->dump(dbh => $dbh, namespace => $namespace)

This is the method to generate code from DB. It returns the Perl5 code in string.

The arguments are:

dbh

Database handle from DBI.

namespace

your project Teng namespace.

base_row_class

Specify the default base row class for Teng::Schema::Declare.