The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::Class::MooseColumns - Lets you write DBIC add_column() definitions as attribute options

VERSION

Version 0.13

SYNOPSIS

  package MyApp::Schema::Result::Artist;

  use Moose;
  use DBIx::Class::MooseColumns;
  use namespace::autoclean;

  extends 'DBIx::Class::Core';

  __PACKAGE__->table('artist');

  has id => (
    isa => 'Int',
    is  => 'rw',
    add_column => {
      is_auto_increment => 1,
    },
  );

  has foo => (
    isa => 'Str',
    is  => 'rw',
    add_column => {
      data_type => 'datetime'
    },
  );

  has bar => (        # will call __PACKAGE__->add_column({})
    isa => 'Str',
    is  => 'rw',
    add_column => {
    },
  );

  has quux => (       # no __PACKAGE__->add_column() call
    isa => 'Str',
    is  => 'rw',
  );

  __PACKAGE__->set_primary_key('id');

  __PACKAGE__->meta->make_immutable( inline_constructor => 0 );

  1;

DISCLAIMER

This is ALPHA SOFTWARE. Use at your own risk. Features may change.

DESCRIPTION

This module allows you to put the arguments to "add_column" in DBIx::Class::ResultSource right into your attribute definitions and will automatically call it when it finds an add_column attribute option. It also replaces the DBIx::Class-generated accessor methods (these are Class::Accessor::Grouped-generated accessor methods under the hood) with the Moose-generated accessor methods so that you can use more of the wonderful powers of Moose (eg. type constraints, triggers, ...).

Note: __PACKAGE__->table(...) must go before the has stanzas (the "table" in DBIx::Class::ResultSource is magic and does much more than setting the table name, thus the __PACKAGE__->add_column(...) calls that the has triggers won't work before that).

Note: __PACKAGE__->set_primary_key(...) and __PACKAGE__->add_unique_constraint(...) calls must go after the has stanzas (since they depend on the referred columns being registered via __PACKAGE__->add_column(...) and that call is done when the has runs).

SEE ALSO

DBIx::Class, Moose

AUTHOR

Norbert Buchmuller, <norbi at nix.hu>

BUGS

Please report any bugs or feature requests to bug-dbix-class-moosecolumns at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-Class-MooseColumns. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc DBIx::Class::MooseColumns

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2010 Norbert Buchmuller, all rights reserved.

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