@@ -, +, @@
already executed
---
C4/Update/Database.pm | 24 +++++++++++---------
admin/updatedatabase.pl | 6 +++++
.../prog/en/modules/admin/updatedatabase.tt | 2 ++
3 files changed, 21 insertions(+), 11 deletions(-)
--- a/C4/Update/Database.pm
+++ a/C4/Update/Database.pm
@@ -102,7 +102,7 @@ sub get_md5 {
=cut
sub execute_version {
- my ( $version ) = @_;
+ my ( $version, $args ) = @_;
my $report;
my $filepath;
@@ -118,16 +118,18 @@ sub execute_version {
my $filename = $version . $extension;
my $md5 = get_md5 $filepath;
- my $r = md5_already_exists( $md5 );
- if ( scalar @$r ) {
- my $p = @$r[0];
- $report->{$version} = {
- error => "ALREADY_EXISTS",
- filepath => $filepath,
- old_version => @$r[0]->{version},
- md5 => @$r[0]->{md5},
- };
- return $report;
+ unless ( $args->{force} ) {
+ my $r = md5_already_exists( $md5 );
+ if ( scalar @$r ) {
+ my $p = @$r[0];
+ $report->{$version} = {
+ error => "ALREADY_EXISTS",
+ filepath => $filepath,
+ old_version => @$r[0]->{version},
+ md5 => @$r[0]->{md5},
+ };
+ return $report;
+ }
}
my $queries;
--- a/admin/updatedatabase.pl
+++ a/admin/updatedatabase.pl
@@ -71,6 +71,12 @@ if ( $op eq 'mark_as_ok' ) {
$op = 'list';
}
+if ( $op eq 'force_update' ) {
+ my $version = $query->param('version');
+ C4::Update::Database::execute_version $version, {force => 1};
+ $op = 'list';
+}
+
if ( $op eq 'list' ) {
my $versions_available = C4::Update::Database::list_versions_available;
my $versions = C4::Update::Database::list_versions_already_applied;
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/updatedatabase.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/updatedatabase.tt
@@ -77,6 +77,8 @@
[% r.error.filepath %] already executed in version [% r.error.old_version %] : same md5 ([% r.error.md5 %])
[Mark as OK]
+ or
+ [execute anyway]
[% ELSIF r.error.error == "LOAD_FUNCTIONS_FAILED" %]
--