Jifty::Upgrade(3)
Superclass for schema/data upgrades to Jifty applications
SYNOPSIS
package MyApp::Upgrade;
use base qw/ Jifty::Upgrade /;
use Jifty::Upgrade qw/ since rename /;
since '0.7.4' => sub {
# Rename a column
rename table => 'cthulus', name => 'description',
to => 'mind_numbingly_horrible_word_picture';
};
since '0.6.1' => sub {
my @sizes = ('Huge', 'Gigantic', 'Monstrous', 'Really Big');
my @appearances = ('Horrible', 'Disgusting', 'Frightening', 'Evil');
# populate new columns with some random stuff
my $cthulus = MyApp::Model::CthuluCollection->new;
while (my $cthulu = $cthulus->next) {
$cthulu->set_size($sizes[ int(rand(@sizes)) ]);
$cthulu->set_appearance($appearances[ int(rand(@appearances)) ]);
}
};
DESCRIPTION
"Jifty::Upgrade" is an abstract base class to use to customize schema
and data upgrades that happen.
since VERSION SUB
"since" is meant to be called by subclasses of "Jifty::Upgrade".
Calling it signifies that SUB should be run when upgrading to
version VERSION, after tables and columns are added, but before
tables and columns are removed. If multiple subroutines are given for
the same version, they are run in order that they were set up.
versions
Returns the list of versions that have been registered; this is called
by the Jifty::Script::Schema tool to determine what to do while
upgrading.
upgrade_to VERSION
Runs the subroutine that has been registered for the given version; if
no subroutine was registered, returns a no-op subroutine.
rename table => CLASS, [column => COLUMN,] to => NAME
Used in upgrade subroutines, this executes the necessary SQL to rename
the table, or column in the table, to a new name.