Bug 10020: Remove DB table and fields related to ethnicity

This patch remove the ethnicity table and the ethnicity and ethnotes
fields from the 3 tables: borrowers, deletedborrowers and
borrower_modifications IF no data exist.

Test plan:
0/ Apply this patch and update the Koha::Schema
(misc/devel/update_dbix_class_files.pl).
1/ Make sure the ethnicity has at least 1 entry
2/ Launch the updatedb entry and confirm you get a warning message and
the DB structure is not updated.
3/ truncate the ethnicity table and fill ethnicity (or ethnotes) for at least 1
row of the borrowers table.
4/ Launch the updatedb entry and confirm you get a warning message and
the DB structure is not updated.
5/ Make sure the ethnicity table is empty as well as the ethniciy and
the ethnotes fields of borrowers, deletedborrowers and
borrower_modifications
6/ Launch the updatedb entry and confirm you don't get the warning
message and the DB structure is updated (ie. table and fields dropped).

Signed-off-by: Nick Clemens <nick@quecheelibrary.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2015-04-10 13:19:50 +02:00 committed by Tomas Cohen Arazi
parent dc7a71e8f9
commit 09cb7e9043
2 changed files with 55 additions and 17 deletions

View file

@ -245,8 +245,6 @@ CREATE TABLE `borrowers` ( -- this table includes information about your patrons
`guarantorid` int(11) default NULL, -- borrowernumber used for children or professionals to link them to guarentors or organizations
`borrowernotes` mediumtext, -- a note on the patron/borrower's account that is only visible in the staff client
`relationship` varchar(100) default NULL, -- used for children to include the relationship to their guarentor
`ethnicity` varchar(50) default NULL, -- unused in Koha
`ethnotes` varchar(255) default NULL, -- unused in Koha
`sex` varchar(1) default NULL, -- patron/borrower's gender
`password` varchar(60) default NULL, -- patron/borrower's encrypted password
`flags` int(11) default NULL, -- will include a number associated with the staff member's permissions
@ -877,8 +875,6 @@ CREATE TABLE `deletedborrowers` ( -- stores data related to the patrons/borrower
`guarantorid` int(11) default NULL, -- borrowernumber used for children or professionals to link them to guarentors or organizations
`borrowernotes` mediumtext, -- a note on the patron/borrower's account that is only visible in the staff client
`relationship` varchar(100) default NULL, -- used for children to include the relationship to their guarentor
`ethnicity` varchar(50) default NULL, -- unused in Koha
`ethnotes` varchar(255) default NULL, -- unused in Koha
`sex` varchar(1) default NULL, -- patron/borrower's gender
`password` varchar(30) default NULL, -- patron/borrower's encrypted password
`flags` int(11) default NULL, -- will include a number associated with the staff member's permissions
@ -961,17 +957,6 @@ CREATE TABLE `deleteditems` (
KEY `itype_idx` (`itype`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Table structure for table `ethnicity`
--
DROP TABLE IF EXISTS `ethnicity`;
CREATE TABLE `ethnicity` (
`code` varchar(10) NOT NULL default '',
`name` varchar(255) default NULL,
PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Table structure for table `export_format`
--
@ -3321,8 +3306,6 @@ CREATE TABLE IF NOT EXISTS `borrower_modifications` (
`guarantorid` int(11) DEFAULT NULL,
`borrowernotes` mediumtext,
`relationship` varchar(100) DEFAULT NULL,
`ethnicity` varchar(50) DEFAULT NULL,
`ethnotes` varchar(255) DEFAULT NULL,
`sex` varchar(1) DEFAULT NULL,
`password` varchar(30) DEFAULT NULL,
`flags` int(11) DEFAULT NULL,

View file

@ -10986,6 +10986,61 @@ if ( CheckVersion($DBversion) ) {
SetVersion($DBversion);
}
$DBversion = "3.19.00.XXX";
if ( CheckVersion($DBversion) ) {
my $done = 0;
my $count_ethnicity = $dbh->selectrow_arrayref(q|
SELECT COUNT(*) FROM ethnicity
|);
my $count_borrower_modifications = $dbh->selectrow_arrayref(q|
SELECT COUNT(*)
FROM borrower_modifications
WHERE ethnicity IS NOT NULL
OR ethnotes IS NOT NULL
|);
my $count_borrowers = $dbh->selectrow_arrayref(q|
SELECT COUNT(*)
FROM borrowers
WHERE ethnicity IS NOT NULL
OR ethnotes IS NOT NULL
|);
# We don't care about the ethnicity of the deleted borrowers, right?
if ( $count_ethnicity->[0] == 0
and $count_borrower_modifications->[0] == 0
and $count_borrowers->[0] == 0
) {
$dbh->do(q|
DROP TABLE ethnicity
|);
$dbh->do(q|
ALTER TABLE borrower_modifications
DROP COLUMN ethnicity,
DROP COLUMN ethnotes
|);
$dbh->do(q|
ALTER TABLE borrowers
DROP COLUMN ethnicity,
DROP COLUMN ethnotes
|);
$dbh->do(q|
ALTER TABLE deletedborrowers
DROP COLUMN ethnicity,
DROP COLUMN ethnotes
|);
$done = 1;
}
if ( $done ) {
print "Upgrade to $DBversion done (Bug 10020: Drop table ethnicity and columns ethnicity and ethnotes)\n";
}
else {
print "Upgrade to $DBversion done (Bug 10020: This database contains data related to 'ethnicity'. No change will be done on the DB structure but note that the Koha codebase does not use it)\n";
}
SetVersion ($DBversion);
}
# DEVELOPER PROCESS, search for anything to execute in the db_update directory
# SEE bug 13068
# if there is anything in the atomicupdate, read and execute it.