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. METHODS This package implements the following methods. build build(Grammar $g, 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); }); column_create column_create(Any %args) : Command Registers a column create and returns the Command object. column_create example my $command = $self->column_create(%args); column_delete column_delete(Any %args) : Command Registers a column delete and returns the Command object. column_delete example my $command = $self->column_delete(%args); column_rename column_rename(Any %args) : Command Registers a column rename and returns the Command object. column_rename example my $command = $self->column_rename(%args); column_update column_update(Any %args) : Command Registers a column update and returns the Command object. column_update example my $command = $self->column_update(%args); grammar grammar(Str $name) : Grammar Returns a new Grammar object. grammar example my $grammar = $self->grammar('sqlite'); index_create index_create(Any %args) : Command Registers a index create and returns the Command object. index_create example my $command = $self->index_create(%args); index_delete index_delete(Any %args) : Command Register and return an index_delete command. index_delete example my $command = $self->index_delete(%args); relation_create relation_create(Any %args) : Command Registers a relation create and returns the Command object. relation_create example my $command = $self->relation_create(%args); relation_delete relation_delete(Any %args) : Command Registers a relation delete and returns the Command object. relation_delete example my $command = $self->relation_delete(%args); schema schema(Str $name, Any %args) : Schema Returns a new Schema object. schema example my $schema = $self->schema($name); schema_create schema_create(Any %args) : Command Registers a schema create and returns the Command object. schema_create example my $command = $self->schema_create(%args); schema_delete schema_delete(Any %args) : Command Registers a schema delete and returns the Command object. schema_delete example my $command = $self->schema_delete(%args); statements statements(Grammar $g) : [Statement] Returns a set of Statement objects for the given grammar. statements example my $statements = $self->statements($grammar); table table(Str $name, Any %args) : Table Return a new Table object. table example my $table = $self->table('users'); table_create table_create(Any %args) : Command Registers a table create and returns the Command object. table_create example my $command = $self->table_create(%args); table_delete table_delete(Any %args) : Command Registers a table delete and returns the Command object. table_delete example my $command = $self->table_delete(%args); table_rename table_rename(Any %args) : Command Registers a table rename and returns the Command object. table_rename example my $command = $self->table_rename(%args);