6700: Better handling of version numbers in updatedatabase

Contains a few lines of code for updatedatabase routines SetVersion and TransformToNum in order to facilitate testing new db revisions which are still marked XXX.
Currently, the XXX as added in a proposed patch generates an error in the version compare. Additionally, running SetVersion while testing the upgrade is annoying and not needed. In testing stage you would like to keep your version number as is. The version number should of course be incremented when the patch is pushed. A simple test accomplishes that.

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
This commit is contained in:
Marcel de Rooy 2011-06-30 09:34:23 +02:00 committed by Paul Poulain
parent 22dca58cba
commit c8982e1ab4

View file

@ -4627,6 +4627,10 @@ sub TransformToNum {
my $version = shift;
# remove the 3 last . to have a Perl number
$version =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/;
# three X's at the end indicate that you are testing patch with dbrev
# change it into 999
# prevents error on a < comparison between strings (should be: lt)
$version =~ s/XXX$/999/;
return $version;
}
@ -4637,7 +4641,9 @@ set the DBversion in the systempreferences
=cut
sub SetVersion {
my $kohaversion = TransformToNum(shift);
return if $_[0]=~ /XXX$/;
#you are testing a patch with a db revision; do not change version
my $kohaversion = TransformToNum($_[0]);
if (C4::Context->preference('Version')) {
my $finish=$dbh->prepare("UPDATE systempreferences SET value=? WHERE variable='Version'");
$finish->execute($kohaversion);