<% include( '/elements/header.html', 'Developer Documentation' ) %> <& /elements/menubar.html, 'Freeside Perl Modules' => $fsurl.'docs/library/FS.html', 'Complete Index' => $fsurl.'docs/library/index.html', &>

FS::upgrade_journal

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'

<% include ('/elements/footer.html' ) %>