Bug 15095: marc_modificacation_template_actions DB not consistent between fresh and...
authorTomas Cohen Arazi <tomascohen@theke.io>
Sat, 31 Oct 2015 14:57:42 +0000 (11:57 -0300)
committerTomas Cohen Arazi <tomascohen@theke.io>
Wed, 4 Nov 2015 15:41:28 +0000 (12:41 -0300)
A review of the 3.20.00 + upgrade DB, compared to a fresh master install
highlighted an inconsistency on that table. This is mysqldbcompare's
output for it:

-   `action` enum('delete_field','update_field','move_field','copy_field','copy_and_replace_field') COLLATE utf8_unicode_ci DEFAULT NULL,
?                                                                        -------------------------                          ^^^^^^
+   `action` enum('delete_field','update_field','move_field','copy_field') COLLATE utf8_unicode_ci NOT NULL,

So one ENUM value is missing on fresh installs, and an upgraded one
yields a DEFAULT NULL configuration for the 'action' column.

To test:
1) have a v3.20.00 DB:
  > CREATE DATABASE koha_master_upgraded;
  $ git checkout v3.20.00
  $ mysql koha_master_upgraded < installer/data/mysql/kohastructure.sql
2) upgrade it to latest master by running:
  $ git checkout origin/master
  $ perl installer/data/mysql/updatedatabase.pl
3) Create a new DB
  > CREATE DATABASE koha_master_fresh;
  $ mysql koha_master_fresh < installer/data/mysql/kohastructure.sql
4) Run mysqldbcompare (you need mysql-utilities installed for that)
  $ mysqldbcompare --difftype=differ --server1=root@localhost \
                   --skip-data-check --skip-table-options \
                   --run-all-tests  koha_master_upgraded:koha_master_fresh
=> FAIL: You will notice the marc_modification_template_actions discrepancy
- Repeat from 1), but apply this patch on 2) before the upgrade.
=> SUCCESS: The DB's discrepancies are now irrelevant [1]
- Sign off :-D

[1] Only KEY definition order is 'wrong', but it is not relevant.

Signed-off-by: Frederic Demians <f.demians@tamil.fr>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
installer/data/mysql/kohastructure.sql
installer/data/mysql/updatedatabase.pl

index 76ee26b..d72999e 100644 (file)
@@ -3450,7 +3450,7 @@ CREATE TABLE IF NOT EXISTS marc_modification_template_actions (
   mmta_id int(11) NOT NULL AUTO_INCREMENT,
   template_id int(11) NOT NULL,
   ordering int(3) NOT NULL,
-  action enum('delete_field','update_field','move_field','copy_field') NOT NULL,
+  action ENUM('delete_field','update_field','move_field','copy_field','copy_and_replace_field') NOT NULL,
   field_number smallint(6) NOT NULL DEFAULT '0',
   from_field varchar(3) NOT NULL,
   from_subfield varchar(1) DEFAULT NULL,
index c0aa7f2..b338e9b 100755 (executable)
@@ -10835,6 +10835,7 @@ if ( CheckVersion($DBversion) ) {
         ALTER TABLE marc_modification_template_actions
         MODIFY COLUMN action
             ENUM('delete_field','update_field','move_field','copy_field','copy_and_replace_field')
+            NOT NULL
     });
     print "Upgrade to $DBversion done (Bug 14098: Regression in Marc Modification Templates)\n";
     SetVersion($DBversion);