Provided by: libsql-translator-perl_0.11021-1_all bug

NAME

       SQL::Translator::Schema - SQL::Translator schema object

SYNOPSIS

         use SQL::Translator::Schema;
         my $schema   =  SQL::Translator::Schema->new(
             name     => 'Foo',
             database => 'MySQL',
         );
         my $table    = $schema->add_table( name => 'foo' );
         my $view     = $schema->add_view( name => 'bar', sql => '...' );

DESCSIPTION

       "SQL::Translator::Schema" is the object that accepts, validates, and returns the database
       structure.

METHODS

   as_graph_pm
       Returns a Graph::Directed object with the table names for nodes.

   add_table
       Add a table object.  Returns the new SQL::Translator::Schema::Table object.  The "name"
       parameter is required.  If you try to create a table with the same name as an existing
       table, you will get an error and the table will not be created.

         my $t1 = $schema->add_table( name => 'foo' ) or die $schema->error;
         my $t2 = SQL::Translator::Schema::Table->new( name => 'bar' );
         $t2    = $schema->add_table( $table_bar ) or die $schema->error;

   drop_table
       Remove a table from the schema. Returns the table object if the table was found and
       removed, an error otherwise. The single parameter can be either a table name or an
       "SQL::Translator::Schema::Table" object. The "cascade" parameter can be set to 1 to also
       drop all triggers on the table, default is 0.

         $schema->drop_table('mytable');
         $schema->drop_table('mytable', cascade => 1);

   add_procedure
       Add a procedure object.  Returns the new SQL::Translator::Schema::Procedure object.  The
       "name" parameter is required.  If you try to create a procedure with the same name as an
       existing procedure, you will get an error and the procedure will not be created.

         my $p1 = $schema->add_procedure( name => 'foo' );
         my $p2 = SQL::Translator::Schema::Procedure->new( name => 'bar' );
         $p2    = $schema->add_procedure( $procedure_bar ) or die $schema->error;

   drop_procedure
       Remove a procedure from the schema. Returns the procedure object if the procedure was
       found and removed, an error otherwise. The single parameter can be either a procedure name
       or an "SQL::Translator::Schema::Procedure" object.

         $schema->drop_procedure('myprocedure');

   add_trigger
       Add a trigger object.  Returns the new SQL::Translator::Schema::Trigger object.  The
       "name" parameter is required.  If you try to create a trigger with the same name as an
       existing trigger, you will get an error and the trigger will not be created.

         my $t1 = $schema->add_trigger( name => 'foo' );
         my $t2 = SQL::Translator::Schema::Trigger->new( name => 'bar' );
         $t2    = $schema->add_trigger( $trigger_bar ) or die $schema->error;

   drop_trigger
       Remove a trigger from the schema. Returns the trigger object if the trigger was found and
       removed, an error otherwise. The single parameter can be either a trigger name or an
       "SQL::Translator::Schema::Trigger" object.

         $schema->drop_trigger('mytrigger');

   add_view
       Add a view object.  Returns the new SQL::Translator::Schema::View object.  The "name"
       parameter is required.  If you try to create a view with the same name as an existing
       view, you will get an error and the view will not be created.

         my $v1 = $schema->add_view( name => 'foo' );
         my $v2 = SQL::Translator::Schema::View->new( name => 'bar' );
         $v2    = $schema->add_view( $view_bar ) or die $schema->error;

   drop_view
       Remove a view from the schema. Returns the view object if the view was found and removed,
       an error otherwise. The single parameter can be either a view name or an
       "SQL::Translator::Schema::View" object.

         $schema->drop_view('myview');

   database
       Get or set the schema's database.  (optional)

         my $database = $schema->database('PostgreSQL');

   is_valid
       Returns true if all the tables and views are valid.

         my $ok = $schema->is_valid or die $schema->error;

   get_procedure
       Returns a procedure by the name provided.

         my $procedure = $schema->get_procedure('foo');

   get_procedures
       Returns all the procedures as an array or array reference.

         my @procedures = $schema->get_procedures;

   get_table
       Returns a table by the name provided.

         my $table = $schema->get_table('foo');

   get_tables
       Returns all the tables as an array or array reference.

         my @tables = $schema->get_tables;

   get_trigger
       Returns a trigger by the name provided.

         my $trigger = $schema->get_trigger('foo');

   get_triggers
       Returns all the triggers as an array or array reference.

         my @triggers = $schema->get_triggers;

   get_view
       Returns a view by the name provided.

         my $view = $schema->get_view('foo');

   get_views
       Returns all the views as an array or array reference.

         my @views = $schema->get_views;

   make_natural_joins
       Creates foreign key relationships among like-named fields in different tables.  Accepts
       the following arguments:

       •   join_pk_only

           A True or False argument which determines whether or not to perform the joins from
           primary keys to fields of the same name in other tables

       •   skip_fields

           A list of fields to skip in the joins

         $schema->make_natural_joins(
             join_pk_only => 1,
             skip_fields  => 'name,department_id',
         );

   name
       Get or set the schema's name.  (optional)

         my $schema_name = $schema->name('Foo Database');

   translator
       Get the SQL::Translator instance that instantiated the parser.

AUTHOR

       Ken Youens-Clark <kclark@cpan.org>.