SQL::Tr...::Schema(3)

πŸ’– NAME πŸ’–

okay so welcome to the SQL::Tr...::Schema(3) page from the User Contributed Perl Documentation, bestie πŸ’…. SQL::Translator::Schema is literally the schema object β€” the one that accepts, validates, and returns the database structure. ✨

✨ 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 🌸

(yes bestie, the heading is spelled DESCSIPTION in the page β€” keeping it exactly πŸ™ˆ)

SQL::Translator::Schema is the object that accepts, validates, and returns the database structure. πŸ’–

πŸŽ€ METHODS πŸŽ€

πŸ’« as_graph_pm

Returns a Graph::Directed object where the table names are the nodes. Lowkey graph-core. πŸ¦‹

🧚 add_table

Adds a table object, bestie. You get back the fresh SQL::Translator::Schema::Table object. The name parameter is required. If you try to make a table with the same name as an existing table, you’ll get an error and the table will not be created β€” no duplicate-table nonsense here, periodt. πŸ’…

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

Removes a table from the schema. Returns the table object if it was found and removed; otherwise you get an error. 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

Adds 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’ll 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

Removes a procedure from the schema. Returns the procedure object if the procedure was found and removed; otherwise you get an error. The single parameter can be either a procedure name or an SQL::Translator::Schema::Procedure object. ✨

$schema->drop_procedure('myprocedure');

πŸ”₯ add_trigger

Adds 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’ll 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

Removes a trigger from the schema. Returns the trigger object if the trigger was found and removed; otherwise you get an error. The single parameter can be either a trigger name or an SQL::Translator::Schema::Trigger object. πŸ’…

$schema->drop_trigger('mytrigger');

🌈 add_view

Adds 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’ll 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

Removes a view from the schema. Returns the view object if the view was found and removed; otherwise you get an error. 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. It’s optional, bestie. ✨

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

⭐ is_valid

Returns true if all the tables and views are valid. vibe check passed? πŸ’…

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. iconic. ✨

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 these arguments, bestie:

  • 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. It’s optional. ✨

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

🫢 translator

Get the SQL::Translator instance that instantiated the parser. main character energy, honestly. πŸ’…

πŸ‘‘ AUTHOR πŸ‘‘

By Ken Youens-Clark <kclark@cpan.org>. πŸ’–


okay that’s the whole page, bestie 🫢 β€” source/version perl v5.42.0, dated 2024-12-12. mwah πŸ’‹

πŸ“¦ where this page comes from