NAME
Doodle::Migration
ABSTRACT
Database Migration Class
SYNOPSIS
# in lib/My/Migration/Step1.pm
package My::Migration::Step1;
use parent 'Doodle::Migration';
sub up {
my ($self, $doodle) = @_;
my $users = $doodle->table('users');
$users->primary('id');
$users->string('email');
$users->create;
$users->index(columns => ['email'])->unique->create;
return $doodle;
}
sub down {
my ($self, $doodle) = @_;
my $users = $doodle->table('users');
$users->delete;
return $doodle;
}
# in lib/My/Migration/Step2.pm
package My::Migration::Step2;
use parent 'Doodle::Migration';
sub up {
my ($self, $doodle) = @_;
my $users = $doodle->table('users');
$users->string('first_name')->create;
$users->string('last_name')->create;
return $doodle;
}
sub down {
my ($self, $doodle) = @_;
my $users = $doodle->table('users');
$users->string('first_name')->delete;
$users->string('last_name')->delete;
return $doodle;
}
1;
DESCRIPTION
This package provides a base class for creating database migration classes which will be handled by Doodle::Migrator classes.
METHODS
This package implements the following methods.
down
down(Doodle $doodle) : Doodle
The migrate "DOWN" method is invoked automatically by the migrator Doodle::Migrator.
up
up(Doodle $doodle) : Doodle
The migrate "UP" method is invoked automatically by the migrator Doodle::Migrator.