|
Lines 21-26
use Modern::Perl;
Link Here
|
| 21 |
|
21 |
|
| 22 |
use Encode qw( encode is_utf8 ); |
22 |
use Encode qw( encode is_utf8 ); |
| 23 |
use DBIx::RunSQL; |
23 |
use DBIx::RunSQL; |
|
|
24 |
use XML::LibXML; |
| 24 |
use C4::Context; |
25 |
use C4::Context; |
| 25 |
use C4::Installer::PerlModules; |
26 |
use C4::Installer::PerlModules; |
| 26 |
use DBI; |
27 |
use DBI; |
|
Lines 145-151
sub marc_framework_sql_list {
Link Here
|
| 145 |
|
146 |
|
| 146 |
foreach my $requirelevel (@listdir) { |
147 |
foreach my $requirelevel (@listdir) { |
| 147 |
opendir( MYDIR, "$dir/$requirelevel" ); |
148 |
opendir( MYDIR, "$dir/$requirelevel" ); |
| 148 |
my @listname = grep { !/^\./ && -f "$dir/$requirelevel/$_" && $_ =~ m/\.sql$/ } readdir(MYDIR); |
149 |
my @listname = grep { !/^\./ && -f "$dir/$requirelevel/$_" && $_ =~ m/\.(sql|xml)$/ } readdir(MYDIR); |
| 149 |
closedir MYDIR; |
150 |
closedir MYDIR; |
| 150 |
my %cell; |
151 |
my %cell; |
| 151 |
my @frameworklist; |
152 |
my @frameworklist; |
|
Lines 453-464
sub load_sql {
Link Here
|
| 453 |
local *STDERR; |
454 |
local *STDERR; |
| 454 |
open STDERR, ">>", \$dup_stderr; |
455 |
open STDERR, ">>", \$dup_stderr; |
| 455 |
|
456 |
|
| 456 |
eval { |
457 |
if ( $filename =~ /xml$/ ) { |
| 457 |
DBIx::RunSQL->run_sql_file( |
458 |
eval { |
| 458 |
dbh => $dbh, |
459 |
my $dom = XML::LibXML->load_xml( location => $filename ); # Load XML |
| 459 |
sql => $filename, |
460 |
my $table = $dom->documentElement->nodeName; # Find table name |
| 460 |
); |
461 |
my $query = "LOAD XML LOCAL INFILE '".$filename."' INTO TABLE ".$table; # MySQL only |
| 461 |
}; |
462 |
my $loadxml = $dbh->prepare($query); |
|
|
463 |
$loadxml->execute(); |
| 464 |
}; |
| 465 |
} |
| 466 |
else { |
| 467 |
eval { |
| 468 |
DBIx::RunSQL->run_sql_file( |
| 469 |
dbh => $dbh, |
| 470 |
sql => $filename, |
| 471 |
); |
| 472 |
}; |
| 473 |
} |
| 462 |
}; |
474 |
}; |
| 463 |
# errors thrown while loading installer data should be logged |
475 |
# errors thrown while loading installer data should be logged |
| 464 |
if( $dup_stderr ) { |
476 |
if( $dup_stderr ) { |
| 465 |
- |
|
|