Freeside:4:Documentation:Developer/FS/upgrade journal
From Freeside
< Freeside:4:Documentation:Developer | FS
Revision as of 07:31, 18 November 2015 by Jeremyd (talk | contribs) (Edit via perl MediaWiki framework (1.13))
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'