NAME
    DBIx::Class::Schema::Critic - Critique a database schema for best
    practices

VERSION
    version 0.011

SYNOPSIS
        use DBIx::Class::Schema::Critic;

        my $critic = DBIx::Class::Schema::Critic->new(
            dsn => 'dbi:Oracle:HR', username => 'scott', password => 'tiger');
        $critic->critique();

DESCRIPTION
    This package is used to scan a database schema and catalog any
    violations of best practices as defined by a set of policy plugins. It
    takes conceptual and API inspiration from Perl::Critic.

    dbic_critic is the command line interface.

    This is a work in progress - please see the "SUPPORT" section below for
    information on how to contribute. It especially needs ideas (and
    implementations!) of new policies!

ATTRIBUTES
  class_name
    The name of a DBIx::Class::Schema class you wish to "critique". Only
    settable at construction time.

  schema
    A DBIx::Class::Schema object you wish to "critique". Only settable at
    construction time.

  dsn
  username
  password
    The DBI data source name (required) and optional username and password
    used to connect to the database. If no "class_name" or "schema" is
    provided, DBIx::Class::Schema::Loader will then construct schema classes
    dynamically to be critiqued.

METHODS
  policies
    Returns an array of loaded policy names that will be applied during
    "critique". By default all modules under the
    "DBIx::Class::Schema::Critic::Policy" namespace are loaded.

  critique
    Runs the "schema" through the DBIx::Class::Schema::Critic engine using
    all the policies that have been loaded and dumps a string representation
    of "violations" to "STDOUT".

  violations
    Returns an array reference of all
    DBIx::Class::Schema::Critic::Violations picked up by the various
    policies.

SEE ALSO
    Perl::Critic
    DBIx::Class
    DBIx::Class::Schema::Loader

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

      perldoc DBIx::Class::Schema::Critic

  Websites
    The following websites have more information about this module, and may
    be of help to you. As always, in addition to those websites please use
    your favorite search engine to discover more resources.

    *   Search CPAN

        The default CPAN search engine, useful to view POD in HTML format.

        <http://search.cpan.org/dist/DBIx-Class-Schema-Critic>

    *   AnnoCPAN

        The AnnoCPAN is a website that allows community annonations of Perl
        module documentation.

        <http://annocpan.org/dist/DBIx-Class-Schema-Critic>

    *   CPAN Ratings

        The CPAN Ratings is a website that allows community ratings and
        reviews of Perl modules.

        <http://cpanratings.perl.org/d/DBIx-Class-Schema-Critic>

    *   CPANTS

        The CPANTS is a website that analyzes the Kwalitee ( code metrics )
        of a distribution.

        <http://cpants.perl.org/dist/overview/DBIx-Class-Schema-Critic>

    *   CPAN Testers

        The CPAN Testers is a network of smokers who run automated tests on
        uploaded CPAN distributions.

        <http://www.cpantesters.org/distro/D/DBIx-Class-Schema-Critic>

    *   CPAN Testers Matrix

        The CPAN Testers Matrix is a website that provides a visual way to
        determine what Perls/platforms PASSed for a distribution.

        <http://matrix.cpantesters.org/?dist=DBIx-Class-Schema-Critic>

    *   CPAN Testers Dependencies

        The CPAN Testers Dependencies is a website that shows a chart of the
        test results of all dependencies for a distribution.

        <http://deps.cpantesters.org/?module=DBIx::Class::Schema::Critic>

  Bugs / Feature Requests
    Please report any bugs or feature requests through the web interface at
    <https://github.com/mjgardner/DBIx-Class-Schema-Critic/issues>. You will
    be automatically notified of any progress on the request by the system.

  Source Code
    The code is open to the world, and available for you to hack on. Please
    feel free to browse it and play with it, or whatever. If you want to
    contribute patches, please send me a diff or prod me to pull from your
    repository :)

    <https://github.com/mjgardner/DBIx-Class-Schema-Critic>

      git clone git://github.com/mjgardner/DBIx-Class-Schema-Critic.git

AUTHOR
    Mark Gardner <mjgardner@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2011 by Mark Gardner.

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

