[Koha-cvs] CVS: koha/updater updatedatabase,1.54,1.55

Paul POULAIN tipaul at users.sourceforge.net
Mon Jul 7 17:36:16 CEST 2003


Update of /cvsroot/koha/koha/updater
In directory sc8-pr-cvs1:/tmp/cvs-serv14616/updater

Modified Files:
	updatedatabase 
Log Message:
(again) fix to avoid errors when creating fields that are primary keys and a previous primary key exist.

Index: updatedatabase
===================================================================
RCS file: /cvsroot/koha/koha/updater/updatedatabase,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -r1.54 -r1.55
*** updatedatabase	7 Jul 2003 15:23:56 -0000	1.54
--- updatedatabase	7 Jul 2003 15:36:13 -0000	1.55
***************
*** 679,729 ****
  
  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 $extra   = $row->{extra};
!         my $def     = $definitions->{$field};
!         unless ( $type eq $def->{type}
!             && $null eq $def->{null}
!             && $key eq $def->{key}
!             && $default eq $def->{default}
!             && $extra eq $def->{extra} )
!         {
! 
!             if ( $null eq '' ) {
!                 $null = 'NOT NULL';
!             }
!             if ( $key eq 'PRI' ) {
  # if it's a primary key, drop the previous pk, before altering the table
! 			$dbh->do("alter table $table drop primary key");
!                 $key = 'PRIMARY KEY';
!             }
!             unless ( $extra eq 'auto_increment' ) {
!                 $extra = '';
!             }
!             my $sth =
!               $dbh->prepare(
! "alter table $table change $field $field $type $null $key $extra default ?"
!             );
!             $sth->execute($default);
!             print "  Alter $field in $table\n";
!         }
!     }
  }
  
--- 679,729 ----
  
  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 $extra   = $row->{extra};
! 		my $def     = $definitions->{$field};
! 		unless ( $type eq $def->{type}
! 			&& $null eq $def->{null}
! 			&& $key eq $def->{key}
! 			&& $default eq $def->{default}
! 			&& $extra eq $def->{extra} )
! 		{
! 
! 			if ( $null eq '' ) {
! 				$null = 'NOT NULL';
! 			}
! 			if ( $key eq 'PRI' ) {
! 				$key = 'PRIMARY KEY';
! 			}
! 			unless ( $extra eq 'auto_increment' ) {
! 				$extra = '';
! 			}
  # if it's a primary key, drop the previous pk, before altering the table
! 			if ($key eq 'PRI') {
! 				my $sth =$dbh->prepare("alter table $table change $field $field $type $null $key $extra default ?");
! 			} else {
! 				my $sth =$dbh->prepare("alter table $table drop primary key, change $field $field $type $null $key $extra default ?");
! 			}
! 			$sth->execute($default);
! 			print "  Alter $field in $table\n";
! 		}
! 	}
  }
  
***************
*** 869,874 ****
  
  # $Log$
! # Revision 1.54  2003/07/07 15:23:56  tipaul
! # fix to avoid errors when creating fields that are primary keys and a previous primary key exist.
  #
  # Revision 1.53  2003/07/07 14:11:16  tipaul
--- 869,874 ----
  
  # $Log$
! # Revision 1.55  2003/07/07 15:36:13  tipaul
! # (again) fix to avoid errors when creating fields that are primary keys and a previous primary key exist.
  #
  # Revision 1.53  2003/07/07 14:11:16  tipaul





More information about the Koha-cvs mailing list