Bug 8002 [SIGNED-OFF][REVISED] Can't add patron attribute type in newer installation
authorOwen Leonard <oleonard@myacpl.org>
Tue, 24 Apr 2012 15:20:42 +0000 (11:20 -0400)
committerPaul Poulain <paul.poulain@biblibre.com>
Mon, 30 Apr 2012 12:28:49 +0000 (14:28 +0200)
Correcting patron_attributes_types definition in kohastructure.sql
to allow NULL entries for category_code, matching the definition
specified in updatedatabase.pl. Adds an entry to updatedatabase.pl
to correct existing installations with the incorrect table structure.

After running the updated updatedatabase.pl the category_code
column in borrower_attribute_types should show that it allows
NULL entries. Adding a new patron attribute type with no
patron category specified should work correctly.

To test the update to kohastructure.sql: Back up your Koha
database, drop it, and recreate it. Load the staff interface
and go through the web installer. After recreating the database
enable ExtendedPatronAttributes and try adding a new patron
attribute type with no patron category specified. The operation
should be successful.

signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
a new update for installations affected.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
installer/data/mysql/kohastructure.sql
installer/data/mysql/updatedatabase.pl

index a210293..488a4f0 100644 (file)
@@ -286,7 +286,7 @@ CREATE TABLE `borrower_attribute_types` ( -- definitions for custom patron field
   `staff_searchable` tinyint(1) NOT NULL default 0, -- defines if this field is searchable via the patron search in the staff client (1 for yes, 0 for no)
   `authorised_value_category` varchar(10) default NULL, -- foreign key from authorised_values that links this custom field to an authorized value category
   `display_checkout` tinyint(1) NOT NULL default 0,-- defines if this field displays in checkout screens
-  `category_code` VARCHAR(1) NOT NULL DEFAULT '',-- defines a category for an attribute_type
+  `category_code` VARCHAR(1) NULL DEFAULT NULL,-- defines a category for an attribute_type
   `class` VARCHAR(255) NOT NULL DEFAULT '',-- defines a class for an attribute_type
   PRIMARY KEY  (`code`),
   KEY `auth_val_cat_idx` (`authorised_value_category`)
index 84f0437..dd3483f 100755 (executable)
@@ -5212,6 +5212,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
     SetVersion($DBversion);
 }
 
+$DBversion = "3.08.00.XXX";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("ALTER TABLE borrower_attribute_types CHANGE category_code category_code VARCHAR( 1 ) NULL DEFAULT NULL");
+    print "Upgrade to $DBversion done. (Bug 8002: Update patron attribute types table to allow NULL category_code)\n";
+    SetVersion($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)