View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Alessandro Ranellucci > DBIx-Lite-0.14 > DBIx::Lite::Schema



Annotate this POD

View/Report Bugs
Module Version: 0.14   Source   Latest Release: DBIx-Lite-0.31




version 0.14


This class holds the very loose schema definitions that enable some advanced features of DBIx::Lite. Note that you can do all main operations, including searches and manipulations, with no need to define any schema.

An empty DBIx::Lite::Schema is created every time you create a DBIx::Lite object. Then you can access it to customize it. Otherwise, you can prepare a Schema object and reutilize it across multiple connections:

    my $schema = DBIx::Lite::Schema->new;
    my $conn1 = DBIx::Lite->new(schema => $schema)->connect(...);
    my $conn2 = DBIx::Lite->new(schema => $schema)->connect(...);


The constructor takes no arguments.


This method accepts a table name and returs the DBIx::Lite::Schema::Table object corresponding to the requested table. You can then call methods on it.



This methods sets up a 1-to-N relationship between two tables. Just pass two table names to it, appending the relation key column name:

    $schema->one_to_many('' => 'books.author_id');

This will have the following effects:

provide a books accessor method in the authors Result objects
provide a books accessor method in the authors ResultSet objects
allow to call <$author-insert_related('books', {...})>>

If you supply a third argument, it will be used to set up the reverse accessor method. For example:

    $schema->one_to_many('' => 'books.author_id', 'author');

will install a author accessor method in the books Result objects.

Note that relationships can be chained:

    $dbix->schema->one_to_many('' => 'books.author_id');
    $dbix->schema->one_to_many('' => 'chapters.books_id');
    my @chapters = $dbix
        ->search({ country => 'IT' })
        ->search({ page_count => { '>' => 20 } })

You can use the same approach to traverse many-to-many relationships.


Alessandro Ranellucci <>


This software is copyright (c) 2012 by Alessandro Ranellucci.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: