Bug 26325: Add primary_key_exists check to C4::Installer

To test:
1 - prove -v t/db_dependent/Installer.t

Signed-off-by: Brandon J <brandon.jimenez@inLibro.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Nick Clemens 2020-08-31 16:43:53 +00:00 committed by Jonathan Druart
parent ebfbefdeb1
commit d4013f660c
2 changed files with 18 additions and 2 deletions

View File

@ -30,7 +30,7 @@ use vars qw(@ISA @EXPORT);
BEGIN {
require Exporter;
@ISA = qw( Exporter );
push @EXPORT, qw( foreign_key_exists index_exists column_exists TableExists);
push @EXPORT, qw( primary_key_exists foreign_key_exists index_exists column_exists TableExists);
};
=head1 NAME
@ -610,6 +610,18 @@ sub get_file_path_from_name {
}
sub primary_key_exists {
my ( $table_name, $key_name ) = @_;
my $dbh = C4::Context->dbh;
my ($exists) = $dbh->selectrow_array(
qq|
SHOW INDEX FROM $table_name
WHERE key_name = 'PRIMARY' AND column_name = ?
|, undef, $key_name
);
return $exists;
}
sub foreign_key_exists {
my ( $table_name, $constraint_name ) = @_;
my $dbh = C4::Context->dbh;

View File

@ -22,7 +22,7 @@
# Add more tests here!!!
use Modern::Perl;
use Test::More tests => 16;
use Test::More tests => 18;
use Koha::Database;
BEGIN {
@ -66,3 +66,7 @@ ok( ! index_exists( 'borrowers', 'xxx'), 'Constraint xxx does not exist' );
ok( foreign_key_exists( 'borrowers', 'borrowers_ibfk_1' ), 'FK borrowers_ibfk_1 exists' );
ok( ! foreign_key_exists( 'borrowers', 'xxx' ), 'FK xxxx does not exist' );
ok( primary_key_exists( 'borrowers', 'borrowernumber'), 'Borrowers has primary key on borrowernumber');
ok( ! primary_key_exists( 'borrowers', 'email'), 'Borrowers does not have a primary key on email');