Provided by: libjifty-perl_1.10518+dfsg-3ubuntu1_all bug


       Jifty::Upgrade - Superclass for schema/data upgrades to Jifty applications


         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)) ]);


       "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.

       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.