The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DiaColloDB::Upgrade - DiaColloDB utilities: auto-magic upgrades: top level

SYNOPSIS

 use DiaColloDB::Upgrade;
 
 @packages = $CLASS_OR_OBJECT->available();
 @needed   = $CLASS_OR_OBJECT->needed($dbdir,  \%opts?, @packages);
 @which    = $CLASS_OR_OBJECT->which($dbdir,   \%opts?, @packages);
 $bool     = $CLASS_OR_OBJECT->upgrade($dbdir, \%opts?, @packages);
 

DESCRIPTION

DiaColloDB::Upgrade is a convenience package for performing automatic in-place upgrades to DiaColloDB database directories, used by the dcdb-upgrade.perl script included in the DiaColloDB distribution.

Globals

Variable: @ISA

DiaColloDB::Upgrade inherits from DiaColloDB::Logger.

Variable: @upgrades

An ARRAY of available automagic upgrade sub-packages (DiaColloDB::Upgrade:: suffixes).

Top-level

available
 @upgrades = $CLASS_OR_OBJECT->available();

Returns list of available upgrade-packages (DiaColloDB::Upgrade:: suffixes).

needed
 @needed = $CLASS_OR_OBJECT->needed($dbdir, \%opts?, @packages);

Returns list of those upgrade-packages in @packages which are applicable to the local DiaColloDB index in $dbdir. %opts are passed to upgrade-package new() methods.

which
 @which = $CLASS_OR_OBJECT->which($dbdir, \%opts?);

Returns a list of upgrades previously applied to $dbdir. Returned list is created by parsing "upgraded" field from "$dbdir/header.json". If the upgrade-item "by" keyword is the name of a package inheriting from DiaColloDB::Upgrade::Base, a new object will be created and appended to the returned list; otherwise the parsed HASH-ref is returned as-is. %opts are passed to upgrade-package new() methods.

upgrade
 $bool = $CLASS_OR_OBJECT->upgrade($dbdir, \%opts?, \@upgrades_or_pkgs);

Force-applies upgrades in @upgrades to the local DiaColloDB index in $dbdir; %opts are passed to upgrade-package new() methods.

AUTHOR

Bryan Jurish <moocow@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2016-2020 by Bryan Jurish

This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.

SEE ALSO

dcdb-upgrade.perl(1), DiaColloDB::Upgrade::Base(3pm), DiaColloDB::Upgrade::v0_04_dlimits(3pm), DiaColloDB::Upgrade::v0_09_multimap(3pm), DiaColloDB::Upgrade::v0_10_x2t(3pm), DiaColloDB(3pm), perl(1), ...