Freeside:3:Documentation:Developer/FS/upgrade journal

From Freeside
Jump to: navigation, search

NAME

FS::upgrade_journal - Object methods for upgrade_journal records

SYNOPSIS

 use FS::upgrade_journal;

 $record = new FS::upgrade_journal \%hash;
 $record = new FS::upgrade_journal { 'column' => 'value' };

 $error = $record->insert;

 # Typical use case
 my $upgrade = 'rename_all_customers_to_Bob';
 if ( ! FS::upgrade_journal->is_done($upgrade) ) {
   ... # do the upgrade, then, if it succeeds
   FS::upgrade_journal->set_done($upgrade);
 }

DESCRIPTION

An FS::upgrade_journal object records an upgrade procedure that was run on the database. FS::upgrade_journal inherits from FS::Record. The following fields are currently supported:

upgradenum - primary key; _date - unix timestamp when the upgrade was run; upgrade - string identifier for the upgrade procedure; must match /^\w+$/; status - either 'done' or 'failed'; statustext - any other message that needs to be recorded

METHODS

new HASHREF
Creates a new upgrade record. To add it to the database, see "insert".
Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the hash method.
insert
Adds this record to the database. If there is an error, returns the error, otherwise returns false.
check
Checks all fields to make sure this is a valid example. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.

CLASS METHODS

is_done UPGRADE
Returns the upgrade entry with identifier UPGRADE and status 'done', if there is one. This is an easy way to check whether an upgrade has been done.
set_done UPGRADE
Creates and inserts an upgrade entry with the current time, status 'done', and identifier UPGRADE. Dies on error.

BUGS

Despite how it looks, this is not currently suitable for use as a mutex.

SEE ALSO

FS::Record, schema.html from the base documentation.

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 140:
You forgot a '=back' before '=head1'