9 HOME MYSQL_HOST MYSQL_TCP_PORT MYSQL_USER MYSQL_DATABASE MYSQL_PW
10 MIGSCHEMA MIGBASEWORKDIR MIGBASEGITDIR MIGGITDIR MIGWORKDIR
12 use open ':encoding(utf8)';
16 my $mig_bin = "$FindBin::Bin/";
17 use lib "$FindBin::Bin/";
20 my $dbh = KMig::db_connect();
22 #to do check for array passed and if not present then use tags
25 my $arg_list_length = scalar @taglist;
26 if($arg_list_length < 1) { @taglist = ("preferences","authorisedvalues","libraries","borrowerattributes"); }
28 my $timestamp = create_timestamp();
30 foreach my $backup (@taglist) {
32 if ($backup eq 'preferences') {
33 $backupfile = $MIGGITDIR . 'systempreferences' . '.' . $timestamp . '.csv';
34 backup_preferences($dbh,$backupfile);
36 if ($backup eq 'authorisedvalues') {
37 $backupfile = $MIGGITDIR . 'authorised_values' . '.' . $timestamp . '.csv';
38 backup_authorised_values($dbh,$backupfile);
39 $backupfile = $MIGGITDIR . 'authorised_value_categories' . '.' . $timestamp . '.csv';
40 backup_authorised_value_categories($dbh,$backupfile);
42 if ($backup eq 'borrowerattributes') {
43 $backupfile = $MIGGITDIR . 'borrower_attribute_types' . '.' . $timestamp . '.csv';
44 backup_borrower_attribute_types($dbh,$backupfile);
45 $backupfile = $MIGGITDIR . 'authorised_values_by_bat' . '.' . $timestamp . '.csv';
46 backup_authorised_values_by_bat($dbh,$backupfile);
47 $backupfile = $MIGGITDIR . 'authorised_value_categories_by_bat' . '.' . $timestamp . '.csv';
48 backup_authorised_value_categories_by_bat($dbh,$backupfile);
50 if ($backup eq 'libraries') {
51 $backupfile = $MIGGITDIR . 'libraries' . '.' . $timestamp . '.csv';
52 backup_libraries($dbh,$backupfile);
56 sub backup_authorised_values {
58 my $backupfile = shift;
60 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
61 print $fh "category,authorised_value,lib,lib_opac,imageurl\n";
62 my $query = "SELECT category,authorised_value,lib,lib_opac,imageurl FROM authorised_values";
63 my $sth = $dbh->prepare($query);
66 while (my @row = $sth->fetchrow_array) {
67 my $category = csvify_str($row[0]);
68 my $authvalue = csvify_str($row[1]);
69 my $lib = csvify_str($row[2]);
70 my $lib_opac = csvify_str($row[3]);
71 my $imageurl = csvify_str($row[4]);
72 print $fh "$category,$authvalue,$lib,$lib_opac,$imageurl\n";
78 sub backup_authorised_values_by_bat {
80 my $backupfile = shift;
82 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
83 print $fh "category,authorised_value,lib,lib_opac,imageurl\n";
84 my $query = "SELECT category,authorised_value,lib,lib_opac,imageurl FROM authorised_values where category in (select category_code from borrower_attribute_types);";
85 my $sth = $dbh->prepare($query);
88 while (my @row = $sth->fetchrow_array) {
89 my $category = csvify_str($row[0]);
90 my $authvalue = csvify_str($row[1]);
91 my $lib = csvify_str($row[2]);
92 my $lib_opac = csvify_str($row[3]);
93 my $imageurl = csvify_str($row[4]);
94 print $fh "$category,$authvalue,$lib,$lib_opac,$imageurl\n";
100 sub backup_authorised_value_categories {
102 my $backupfile = shift;
104 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
105 print $fh "category_name\n";
106 my $query = "SELECT category_name FROM authorised_value_categories";
107 my $sth = $dbh->prepare($query);
110 while (my @row = $sth->fetchrow_array) {
111 my $str = csvify_str($row[0]);
118 sub backup_authorised_value_categories_by_bat {
120 my $backupfile = shift;
122 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
123 print $fh "category_name\n";
124 my $query = "SELECT category_name FROM authorised_value_categories WHERE category_name IN (select category_name from borrower_attribute_types)";
125 my $sth = $dbh->prepare($query);
128 while (my @row = $sth->fetchrow_array) {
129 my $str = csvify_str($row[0]);
136 sub backup_borrower_attribute_types {
138 my $backupfile = shift;
140 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
141 print $fh "code,description,repeateable,opac_display,opac_editable,staff_searchable,authorised_value_category,display_checkout,category_code,class\n";
142 my $query = "SELECT code,description,repeatable,opac_display,opac_editable,staff_searchable,authorised_value_category,display_checkout,category_code,class FROM borrower_attribute_types";
143 my $sth = $dbh->prepare($query);
146 while (my @row = $sth->fetchrow_array) {
147 my $code = csvify_str($row[0]);
148 my $descr = csvify_str($row[1]);
149 my $repeat = $row[2];
150 my $opac_display = $row[3];
151 my $staff_searchable = $row[4];
152 my $auth_value_cat = csvify_str($row[5]);
153 my $display_chkout = $row[6];
154 my $cat_code = csvify_str($row[7]);
155 my $class = csvify_str($row[8]);
156 print $fh "$code,$descr,$repeat,$opac_display,$staff_searchable,$auth_value_cat,$display_chkout,$cat_code,$class\n";
162 sub backup_libraries {
164 my $backupfile = shift;
166 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
167 print $fh "id,parent_id,branchcode,title,description,ft_hide_patron_info,ft_search_groups_opac,ft_search_groups_staff\n";
168 my $query = "SELECT id,parent_id,branchcode,title,description,ft_hide_patron_info,ft_search_groups_opac,ft_search_groups_staff FROM library_groups";
169 my $sth = $dbh->prepare($query);
172 while (my @row = $sth->fetchrow_array) {
174 my $parent_id = $row[1];
175 my $branchcode = csvify_str($row[2]);
176 my $title = csvify_str($row[3]);
177 my $description = csvify_str($row[4]);
178 my $ft_hide_patron_info = $row[5];
179 my $ft_search_groups_opac = $row[6];
180 my $ft_search_groups_staff = $row[7];
181 print $fh "$id,$parent_id,$branchcode,$title,$description,$ft_hide_patron_info,$ft_search_groups_opac,$ft_search_groups_staff\n";
188 sub backup_preferences {
190 my $backupfile = shift;
192 open(my $fh, '>', $backupfile) or die "Could not open $backupfile!";
193 print $fh "variable,value\n";
194 my $query = "SELECT variable,value FROM systempreferences WHERE value != '' AND value IS NOT NULL";
195 my $sth = $dbh->prepare($query);
198 while (my @row = $sth->fetchrow_array) {
199 my $variable = csvify_str($row[0]);
200 my $value = csvify_str($row[1]);
201 print $fh "$variable,$value\n";
207 sub create_timestamp {
208 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
210 $mon = sprintf("%02s",$mon);
211 $mday = sprintf("%02s",$mday);
212 $hour = sprintf("%02s",$hour);
213 $min = sprintf("%02s",$min);
214 $sec = sprintf("%02s",$sec);
215 my $str = "$year$mon$mday$hour$min$sec";
221 if (!defined $str or $str eq '') { return ''; }
223 $str = '"' . $str . '"';
229 print STDERR "$0: $msg", "\n";
237 mig export foo_a foo_b foo_c