NAME
Doodle
ABSTRACT
Database DDL Statement Builder
SYNOPSIS
use Doodle;
my $d = Doodle->new;
my $t = $d->table('users');
$t->primary('id');
$t->uuid('arid');
$t->column('name');
$t->string('email');
$t->json('metadata');
my $x = $t->create;
my $g = $d->grammar('sqlite');
my $s = $g->execute($x);
say $s->sql;
# create table "users" (
# "id" integer primary key,
# "arid" varchar,
# "name" varchar,
# "email" varchar,
# "metadata" text
# )
DESCRIPTION
Doodle is a database DDL statement builder and provides an object-oriented abstraction for performing schema changes in various datastores. This class consumes the Doodle::Helpers roles.
METHODS
This package implements the following methods.
build
build(Grammar $grammar, CodeRef $callback) : ()
Execute a given callback for each generated SQL statement.
- build example
-
$self->build($grammar, sub { my $statement = shift; # e.g. $db->do($statement->sql); });
grammar
grammar(Str $name) : Grammar
Returns a new Grammar object.
schema
schema(Str $name, Any %args) : Schema
Returns a new Schema object.
statements
statements(Grammar $g) : [Statement]
Returns a set of Statement objects for the given grammar.
table
table(Str $name, Any %args) : Table
Return a new Table object.