koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] CVS: koha/updater updatedatabase,1.4.2.20,1.4.2.21


From: Steve Tonnesen
Subject: [Koha-cvs] CVS: koha/updater updatedatabase,1.4.2.20,1.4.2.21
Date: Tue, 17 Sep 2002 15:01:39 -0700

Update of /cvsroot/koha/koha/updater
In directory usw-pr-cvs1:/tmp/cvs-serv18210

Modified Files:
      Tag: rel-1-2
        updatedatabase 
Log Message:
Added a routine to check the definitions of individual fields in a table.


Index: updatedatabase
===================================================================
RCS file: /cvsroot/koha/koha/updater/updatedatabase,v
retrieving revision 1.4.2.20
retrieving revision 1.4.2.21
diff -C2 -r1.4.2.20 -r1.4.2.21
*** updatedatabase      9 Sep 2002 19:45:40 -0000       1.4.2.20
--- updatedatabase      17 Sep 2002 22:01:36 -0000      1.4.2.21
***************
*** 154,157 ****
--- 154,164 ----
  
  
+ my %fielddefinitions=(
+ printers => [
+       { field => 'printername', type => 'char(40)', null => '', key => 'PRI', 
default => '' },
+       ],
+ );
+ 
+ 
  
  #-------------------
***************
*** 247,250 ****
--- 254,295 ----
  } # foreach table
  
+ #my %fielddefinitions=(
+ #printers => [
+ #     { field => 'printername', type => 'char(40)', null => '', key => 'PRI', 
default='' },
+ #);
+ foreach $table ( keys %fielddefinitions ) {
+     print "Check table $table\n" if $debug;
+     $sth=$dbh->prepare("show columns from $table");
+     $sth->execute();
+     my $definitions;
+     while ( ($column, $type, $null, $key, $default, $extra) = $sth->fetchrow) 
{
+       $definitions->{$column}->{type}=$type;
+       $definitions->{$column}->{null}=$null;
+       $definitions->{$column}->{key}=$key;
+       $definitions->{$column}->{default}=$default;
+       $definitions->{$column}->{extra}=$extra;
+     } # while 
+     my $fieldrow=$fielddefinitions{$table};
+     foreach my $row ( @$fieldrow )  {
+       my $field = $row->{field};
+       my $type = $row->{type};
+       my $null = $row->{null};
+       my $key = $row->{key};
+       my $default = $row->{default};
+       my $def=$definitions->{$field};
+       unless ($type eq $def->{type} && $null eq $def->{null} && $key eq 
$def->{key} && $default eq $def->{default}) {
+           if ($null eq '') {
+               $null='NOT NULL';
+           }
+           if ($key eq 'PRI') {
+               $key ='PRIMARY KEY';
+           }
+           my $sth=$dbh->prepare("alter table $table change $field $field 
$type $null $key default ?");
+           $sth->execute($default);
+           print "  Alter $field in $table\n";
+       }
+     }
+ }
+ 
  # Get list of columns from items table
  my %itemtypes;
***************
*** 355,358 ****
--- 400,406 ----
  
  # $Log$
+ # Revision 1.4.2.21  2002/09/17 22:01:36  tonnesen
+ # Added a routine to check the definitions of individual fields in a table.
+ #
  # Revision 1.4.2.20  2002/09/09 19:45:40  uid41696
  # Adding authentication calls to intranet scripts




reply via email to

[Prev in Thread] Current Thread [Next in Thread]