Commit Graph

6642 Commits

Author SHA1 Message Date
Lucas Gass bc0b0d2907
Bug 40936: DBRev 25.06.00.025
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-16 15:20:18 -06:00
Kyle M Hall 63c44cbd0e
Bug 40936: Add index for default patron sort order
The default sort order for Koha's patron search includes many columns, some of which are not indexed:

[% CASE 'name-address' %] {
"data":"me.surname:me.preferred_name:me.firstname:me.middle_name:me.othernames:me.street_number:me.address:me.address2:me.city:me.state:me.postal_code:me.country",

Depending on the number of patrons in the database, and the specific configuration of the server, this can end up generating a query that creates a temp table in the hundreds of gigabytes of data or more. Not only does this risk crashing a database server with insufficient disk space, it's also incredibly slow.

We've found a compound index prevents the issue and also makes the search much faster. InndoDB indexes have a fixed maximum length which is too small ( 3072 bytes ) to encompass the full data for all the fields we need to sort by.

The following works well as a comprise to keep the index length within the maximum:
CREATE INDEX idx_borrowers_sort_order ON borrowers (
    surname(100),        -- 400
    preferred_name(80),  -- 320
    firstname(80),       -- 320
    middle_name(50),     -- 200
    othernames(50),      -- 200
    streetnumber(20),    -- 80
    address(100),        -- 400
    address2(75),        -- 300
    city(75),            -- 300
    state(40),           -- 160
    zipcode(20),         -- 80
    country(40)          -- 160
);

Test Plan:
1) Apply this patch
2) Run updatedatabase.pl
3) Perform a patron search
4) No change in behvior should be noted!

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-16 15:20:18 -06:00
Lucas Gass c629e76e90
Bug 40070: DRRev 25.06.00.024
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-15 16:12:05 -06:00
Marcel de Rooy 52fc6ac32f
Bug 40070: Add new preference DisplayPublishedDate
Test plan:
Run install or update
Check new preference under Administration

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Laura_Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-15 16:12:04 -06:00
Lucas Gass 8a8a04a60e
Bug 38489: Fix structural diff
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-15 11:04:13 -06:00
Martin Renvoize b9bee6a07c
Bug 38489: (follow-up) Improve idempotency of update
We needed better idempotency around checking for fields before
attempting to use them during migration and then dropping them.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-15 11:04:12 -06:00
Martin Renvoize eb5c38a5ab
Bug 38489: (follow-up) Make old db_rev more idempotent 2
In the unit test system we reset the database version to 21.11 after
having upgraded a long way past that. The 231200022 update appears not
to be fully idempotent, so we fail running through the upgrade.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-15 11:04:12 -06:00
Martin Renvoize bf3b1e07a6
Bug 38489: (follow-up) Make old db_rev more idempotent
In the unit test system we reset the database version to 21.11 after
having upgraded a long way past that. The 221200041 update appears not
to be fully idempotent, so we fail running through the upgrade.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-15 11:04:04 -06:00
Lucas Gass 458b476d79
Bug 40983: DBRev 25.06.00.023
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-14 16:09:48 -06:00
Marcel de Rooy 5bad556207
Bug 40983: (QA follow-up) Add a (final) upgrade warn
Just a last wake up call.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-14 14:51:54 -06:00
Lucas Gass 0303e3540d
Bug 38489: DBRev 25.06.00.022
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-14 14:51:52 -06:00
Martin Renvoize 8438782c6d
Bug 38489: (follow-up) Use 'TableExists' in atomicupdate
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-14 14:51:50 -06:00
Martin Renvoize a86cfe61d5
Bug 38489: Add file_transport_id to vendor_edi_accounts and migrate to new transport system
This patch adds database migration to move EDI transport configurations
from vendor_edi_accounts to the new file_transports system introduced
in Bug 39190.

Changes:
- Add file_transport_id column to vendor_edi_accounts with foreign key
- Add 'local' transport type to file_transports enum
- Remove old transport fields from vendor_edi_accounts in kohastructure
- Migration script converts existing EDI configurations to file transports
- Handles FILE -> local transport type conversion

Sponsored-by: ByWater Solutions
Signed-off-by: Hannah Dunne-Howrie <hdunne-howrie@westminster.gov.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-14 14:51:46 -06:00
Arthur Suzuki 53f1874892
Bug 29980: Add a cataloguing plugin to check ISBN
Test plan:
- without patch login to Koha
- edit a biblio and put a wrong ISBN in 020a (010a for unimarc).
- leave the input field (looses focus), no warning
- apply patch and do "reset_all" to make a full re-install.
- edit the biblio again and put an invalid ISBN in 020a (010a for unimarc).
- when you leave the input field you should have a warning saying "invalid ISBN".
- the input field should turn yellow
- you can still save the biblio with a wrong isbn, it is just a warning.
- if you apply the patch on an existing install, you must manually link the value builder to your existing frameworks to get it working.

Signed-off-by: Johannes Reuter <reuter@die-bonn.de>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-09 14:58:40 -06:00
Jonathan Druart a8cdee1ee7
Bug 15516: Fix DB struct diff
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-09 13:48:31 -06:00
Jonathan Druart d90780504f
Bug 39190: Fix DB struct diff
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-09 13:48:30 -06:00
Jonathan Druart 2957031428
Bug 40665: Fix DB struct diff
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-09 13:48:30 -06:00
Jonathan Druart 1a4f7ad3b1
Bug 36033: Fix DB struct diff
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-09 13:48:22 -06:00
Lucas Gass 1cb4b9c4a6
Bug 15516: (follow-up) DBRev nneds to include everything from the kohastructure
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-08 09:53:00 -06:00
Lucas Gass 8831827d03
Bug 37901: (follow-up) Adjust DBRev includes everything from the kohastructure
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-08 09:52:59 -06:00
Lucas Gass 91e99a74e2
Bug 40665: (follow-up) Sync comment for booking_id column
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-08 09:52:52 -06:00
Tomás Cohen Arazi cfc2cd7f7f
Bug 38330: (follow-up) Quote tagfield value to force VARCHAR comparisson
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-10-01 08:32:48 -06:00
Lucas Gass 904dc92a62
Bug 39145: Use empty string for system preference value
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 18:50:13 -06:00
Lucas Gass 38ab32230b
Bug 39145: DBRev 25.06.00.021
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:26 -06:00
Marcel de Rooy afd6e28c3c
Bug 39145: Add option to transfer only public lists to preference
Test plan:
Run updatedatabase.pl
Check ListOwnershipUponPatronDeletion on Patron preferences tab.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:24 -06:00
Lucas Gass 09c3ae4c86
Bug 38330: DBRev 25.06.00.020
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:19 -06:00
David Cook 78109295f1
Bug 38330: (QA follow-up) Fix WHERE clause in SQL update and re-word warning
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:18 -06:00
David Cook e4822d590c
Bug 38330: (QA follow-up) Fix SQL syntax error
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:18 -06:00
Martin Renvoize fdfaeda9fc
Bug 38330: (QA follow-up) Add index to opac_suppressed
As suggested by David, this one adds an index on the new column

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:17 -06:00
Martin Renvoize 393c9fc2c8
Bug 38330: (QA follow-up) Improve resilience of DB update
David considered using boolean, but this would catch 'no' and 0 as
truthy.  I instead look for common values here more explicitly.

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:17 -06:00
Martin Renvoize 354dbc9649
Bug 38330: (QA follow-up) Correction to field extaction
As pointed out by David.. it's the 942 not the 952 we have this data in.

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:16 -06:00
Martin Renvoize 9173aa53b9
Bug 38330: (QA follow-up) Add population of opac_suppressed from biblio_metadata
This patch updates the database update to populate the new
opac_suppressed field in the bilios table using the data in the
biblio_metadata table.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:16 -06:00
Tomas Cohen Arazi b4c7f300f6
Bug 38330: DB changes
Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:13 -06:00
Lucas Gass 280b23e0f9
Bug 40284: DRRev 25.06.00.019
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:12 -06:00
Marcel de Rooy 7c3d9c6f33
Bug 40284: Adjust maxlength for 005-007.
Test plan:
Run dbrev or new install.
Verify the maxlength for 005-007 in marc_subfield_structure.
Restart all. Check maxlength on input tags in the basic editor
for fields 005-007.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-29 14:02:04 -06:00
Tomás Cohen Arazi 6b478e0da9
Bug 40163: (follow-up) Fix wrong GNU links and update test
Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-24 09:25:04 -06:00
Tomas Cohen Arazi 1873d97c07
Bug 40163: Fix several http addresses in the code docs
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Brendan Lawlor <blawlor@clamsnet.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-23 16:21:29 -06:00
Jonathan Druart 6d52128345
Bug 39526: Do not insert the pref if renamed
The upgrade DB must be idempotent
if run twice, the second pass fails with
DBI Exception: DBD::mysql::db do failed: Duplicate entry 'ElasticsearchPreventAutoTruncate' for key 'PRIMARY' at /kohadevbox/koha/C4/Installer.pm line 825

We should not insert the pref if it has been renamed already.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-22 16:26:19 -06:00
Lucas Gass 9e719cd1d3
Bug 35761: DBRev 25.06.00.018
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 13:23:26 -06:00
Tomas Cohen Arazi a5f72d7362
Bug 39190: Rename id => file_transport_id and remove mapping
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 13:23:25 -06:00
Tomas Cohen Arazi acf2f642b4
Bug 39190: Rename 'sftp_servers' to 'file_transports'
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 13:23:21 -06:00
Martin Renvoize 2d88bcaf1f
Bug 39190: Update status to longtext
Update status field to store longtext so we can sore more details
information about connection statuses from test connection

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 13:23:16 -06:00
Jake Deery 2688dfd668
Bug 35761: Database updates
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 13:23:03 -06:00
Lucas Gass d7c21c722e
Bug 39526: DBRev 25.06.00.017
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 08:42:53 -06:00
Jonathan Druart 8dbf22f996
Bug 39526: Prevent other prefs to be renamed
There is only one pref. It feel safer to rename this specific pref than
other pref that might not be ES related.

Other prefs starting with "ES" could be added, then this patch
backported, etc.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 08:42:52 -06:00
Thomas Klausner c4a6c7584d
Bug 39526: Unify syspref variable names to Elasticsearch
We currently have a sysprefs named "Elasticsearch*" and some name only "ES*". This patch unifies the names to always start with "Elasticsearch".

Test plan:

* Start koha-testing-docker, open the staff interface and go to Administration.
* Enter "Elasticsearch" into the System Preference search box and click "search"
* You will find a bunch of sysprefs
* Now search for "ESPreventAutoTruncate", which should find one match

* Apply the patch
* run (in ktd) the script `updatedatabase`

* You should see output like
DEV atomic update /kohadevbox/koha/installer/data/mysql/atomicupdate/bug_39526_unify_syspref_variable_names_for_elasticsearch.pl  [09:35:03]: Bug 39526 - Unify system preference variable names for Elasticsearch
	Renamed system preference 'ES..' to 'Elasticsearch..'

* Go again to to sysprefs and search again for "Elasticsearch"
* you should now find "ElasticsearchPreventAutoTruncate"
* Search for "ESPreventAutoTruncate", which should show "No system preferences matched your search for .." (and the list of ALL sysprefs)

Please note that the qa script explains about installer/data/mysql/mandatory/sysprefs.sql, but the last line is not touched by this patch, so not sure why this happens.

Sponsored-by: HKS3
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-19 08:42:52 -06:00
Lucas Gass 95863d9de5
Bug 31698: DBRev 25.06.00.016
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-05 15:10:46 -06:00
Lucas Gass ceb5ec8b15
Bug 31698: Add alter_hold_targets permission
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-05 15:10:38 -06:00
Lucas Gass 2e84dfa24f
Bug 40665: DBRev 25.06.00.015
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-05 15:10:37 -06:00
Paul Derscheid 1460ddc222
Bug 40665: Database update
This patch updates the database schema to add booking_id foreign key
columns to both issues and old_issues tables, enabling the linkage
between checkouts and the bookings that generated them.

Schema changes:
- Add booking_id column to issues and old_issues tables
- Add foreign key constraints referencing bookings table
- Preserve referential integrity with appropriate CASCADE actions

Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2025-09-05 15:10:35 -06:00