Lines 19-28
Link Here
|
19 |
|
19 |
|
20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
21 |
|
21 |
|
|
|
22 |
use Getopt::Long; |
23 |
use Pod::Usage; |
24 |
|
22 |
use C4::Installer; |
25 |
use C4::Installer; |
23 |
use C4::Context; |
26 |
use C4::Context; |
24 |
use t::lib::Mocks; |
27 |
use t::lib::Mocks; |
25 |
|
28 |
|
|
|
29 |
=head1 NAME |
30 |
|
31 |
populate_db.pl - Load included sample data into the DB |
32 |
|
33 |
=head1 SYNOPSIS |
34 |
|
35 |
populate_db.pl [--marcflavour MARCFLAVOUR] |
36 |
|
37 |
Options: |
38 |
--help Brief help message |
39 |
--marcflavour m Specify the MARC flavour to use (MARC21|UNIMARC). Defaults |
40 |
to MARC21. |
41 |
-v Be verbose. |
42 |
|
43 |
=head1 OPTIONS |
44 |
|
45 |
=over 8 |
46 |
|
47 |
=item B<--help> |
48 |
|
49 |
Prints a brief help message and exits. |
50 |
|
51 |
=item B<--marcflavour> |
52 |
|
53 |
Lets you choose the desired MARC flavour for the sample data. Valid options are MARC21 and UNIMARC. |
54 |
It defaults to MARC21. |
55 |
|
56 |
=item B<--verbose> |
57 |
|
58 |
Make the output more verbose. |
59 |
|
60 |
=back |
61 |
|
62 |
=cut |
63 |
|
64 |
my $help; |
65 |
my $verbose; |
66 |
my $marcflavour = 'MARC21'; |
67 |
|
68 |
GetOptions( |
69 |
'help|?' => \$help, |
70 |
'verbose' => \$verbose, |
71 |
'marcflavour=s' => \$marcflavour |
72 |
) or pod2usage; |
73 |
|
74 |
if ( $help ) { |
75 |
pod2usage; |
76 |
} |
77 |
|
78 |
if ( $marcflavour ne 'MARC21' |
79 |
and $marcflavour ne 'UNIMARC' ) { |
80 |
say "Invalid MARC flavour '$marcflavour' passed."; |
81 |
pod2usage; |
82 |
} |
83 |
|
26 |
$ENV{KOHA_DB_DO_NOT_RAISE_OR_PRINT_ERROR} = 1; |
84 |
$ENV{KOHA_DB_DO_NOT_RAISE_OR_PRINT_ERROR} = 1; |
27 |
my $dbh = C4::Context->dbh; # At the beginning to die if DB does not exist. |
85 |
my $dbh = C4::Context->dbh; # At the beginning to die if DB does not exist. |
28 |
|
86 |
|
Lines 57-63
initialize_data();
Link Here
|
57 |
update_database(); |
115 |
update_database(); |
58 |
|
116 |
|
59 |
sub initialize_data { |
117 |
sub initialize_data { |
60 |
say "Inserting koha db structure..."; |
118 |
say "Inserting koha db structure..." |
|
|
119 |
if $verbose; |
61 |
my $error = $installer->load_db_schema; |
120 |
my $error = $installer->load_db_schema; |
62 |
die $error if $error; |
121 |
die $error if $error; |
63 |
|
122 |
|
Lines 73-103
sub initialize_data {
Link Here
|
73 |
execute_sqlfile($f); |
132 |
execute_sqlfile($f); |
74 |
} |
133 |
} |
75 |
|
134 |
|
76 |
for my $f (@marc21_sample_files_mandatory) { |
135 |
if ( $marcflavour eq 'UNIMARC' ) { |
77 |
execute_sqlfile($f); |
136 |
for my $f (@unimarc_sample_files_mandatory) { |
|
|
137 |
execute_sqlfile($f); |
138 |
} |
139 |
} else { |
140 |
for my $f (@marc21_sample_files_mandatory) { |
141 |
execute_sqlfile($f); |
142 |
} |
78 |
} |
143 |
} |
79 |
|
144 |
|
80 |
# set marcflavour (MARC21) |
145 |
# set marcflavour (MARC21) |
81 |
my $dbh = C4::Context->dbh; |
146 |
my $dbh = C4::Context->dbh; |
82 |
$dbh->do( |
147 |
|
83 |
q{ |
148 |
say "Setting the MARC flavour on the sysprefs..." |
|
|
149 |
if $verbose; |
150 |
$dbh->do(qq{ |
84 |
INSERT INTO `systempreferences` (variable,value,explanation,options,type) |
151 |
INSERT INTO `systempreferences` (variable,value,explanation,options,type) |
85 |
VALUES ('marcflavour','MARC21','Define global MARC flavor (MARC21 or UNIMARC) used for character encoding','MARC21|UNIMARC','Choice') |
152 |
VALUES ('marcflavour',?,'Define global MARC flavor (MARC21 or UNIMARC) used for character encoding','MARC21|UNIMARC','Choice') |
86 |
} |
153 |
},undef,$marcflavour); |
87 |
); |
|
|
88 |
|
154 |
|
89 |
# set version |
155 |
# set version |
90 |
$dbh->do( |
156 |
say "Setting Koha version to $version..." |
91 |
qq{ |
157 |
if $verbose; |
|
|
158 |
$dbh->do(qq{ |
92 |
INSERT INTO systempreferences(variable, value, options, explanation, type) |
159 |
INSERT INTO systempreferences(variable, value, options, explanation, type) |
93 |
VALUES ('Version', '$version', NULL, 'The Koha database version. WARNING: Do not change this value manually, it is maintained by the webinstaller', NULL) |
160 |
VALUES ('Version', '$version', NULL, 'The Koha database version. WARNING: Do not change this value manually, it is maintained by the webinstaller', NULL) |
94 |
} |
161 |
}); |
95 |
); |
|
|
96 |
} |
162 |
} |
97 |
|
163 |
|
98 |
sub execute_sqlfile { |
164 |
sub execute_sqlfile { |
99 |
my ($filepath) = @_; |
165 |
my ($filepath) = @_; |
100 |
say "Inserting $filepath..."; |
166 |
say "Inserting $filepath..." |
|
|
167 |
if $verbose; |
101 |
my $error = $installer->load_sql($filepath); |
168 |
my $error = $installer->load_sql($filepath); |
102 |
die $error if $error; |
169 |
die $error if $error; |
103 |
} |
170 |
} |
Lines 111-117
sub get_version {
Link Here
|
111 |
|
178 |
|
112 |
sub update_database { |
179 |
sub update_database { |
113 |
my $update_db_path = $root . '/installer/data/mysql/updatedatabase.pl'; |
180 |
my $update_db_path = $root . '/installer/data/mysql/updatedatabase.pl'; |
114 |
|
181 |
say "Updating database..." |
|
|
182 |
if $verbose; |
115 |
my $file = `cat $update_db_path`; |
183 |
my $file = `cat $update_db_path`; |
116 |
$file =~ s/exit;//; |
184 |
$file =~ s/exit;//; |
117 |
eval $file; |
185 |
eval $file; |
118 |
- |
|
|