NAME

DBIx::Model - Build Perl objects of a database schema

VERSION

0.0.1 (2020-12-31)

SYNOPSIS

use DBI;
use DBIx::Model;

my $dbh   = DBI->connect('dbi:SQLite:dbname=test.sqlite');
my $model = $dbh->model;

foreach my $table ( $model->tables ) {
    print $table->name . ' (' . $table->type . ")\n";
    foreach my $col ( $table->columns ) {
        print '  ' . $col->name;
        print ' ' . $col->type;
        print ' ' . ( $col->nullable ? '' : 'NOT NULL' );
        print "\n";
    }
}

DESCRIPTION

DBIx::Model builds Perl objects that reflect a database's schema, using the standard table_info(), column_info(), foreign_key_info() and primary_key() methods from DBI.

INTERFACE

model( $catalog, $schema, $name, $type )

Takes exactly the same arguments as DBI::table_info() and method returns a DBIx::Model::DB object.

SEE ALSO

DBIx::Model::DB - database object holding tables.

DBIx::Model::Table - table objects holding columns and foreign key info

DBIx::Model::Column - column objects with references to foreign columns

DBIx::Model::FK - foreign key relationships

dbi2graphviz - create schema diagrams using GraphViz2.

AUTHOR

Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE

Copyright 2016,2020 Mark Lawrence <nomad@null.net>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.