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

NAME  SYNOPSIS  DESCSIPTION  METHODS  as_graph_pm  add_table  drop_table  add_procedure  drop_procedure  add_trigger  drop_trigger  add_view  drop_view  database  is_valid  get_procedure  get_procedures  get_table  get_tables  get_trigger  get_triggers  get_view  get_views  make_natural_joins  name  translator  AUTHOR 

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 <[email protected]>.


Updated 2024-01-29 - jenkler.se | uex.se