From 2c88277ea38f7493394dc3f4a0448a1091c8f385 Mon Sep 17 00:00:00 2001 From: Paul Derscheid Date: Thu, 3 Jul 2025 12:36:30 +0000 Subject: [PATCH] Bug 40292: Specify full datatypes as required for CHANGE COLUMN To test: 1. Follow the original test plan and compare the resulting tables to: MariaDB [koha_kohadev]> desc additional_field_values; +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | field_id | int(11) | NO | MUL | NULL | | | record_id | int(11) | NO | | NULL | | | value | varchar(255) | NO | | | | +-----------+--------------+------+-----+---------+----------------+ 4 rows in set (0.003 sec) MariaDB [koha_kohadev]> desc aqbookseller_aliases; +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | alias_id | int(11) | NO | PRI | NULL | auto_increment | | vendor_id | int(11) | NO | MUL | NULL | | | alias | varchar(255) | NO | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 3 rows in set (0.004 sec) MariaDB [koha_kohadev]> desc aqbookseller_interfaces; +---------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+----------------+ | interface_id | int(11) | NO | PRI | NULL | auto_increment | | vendor_id | int(11) | NO | MUL | NULL | | | type | varchar(80) | YES | | NULL | | | name | varchar(255) | NO | | NULL | | | uri | mediumtext | YES | | NULL | | | login | varchar(255) | YES | | NULL | | | password | mediumtext | YES | | NULL | | | account_email | mediumtext | YES | | NULL | | | notes | longtext | YES | | NULL | | +---------------+--------------+------+-----+---------+----------------+ 9 rows in set (0.003 sec) The Type field should be the only deviation from the previous version, Null and Extra should be identical. 2. Run misc4dev/run_tests.pl --run-db-upgrade-only 3. Sign off --- installer/data/mysql/db_revs/241200018.pl | 2 +- installer/data/mysql/db_revs/241200042.pl | 2 +- installer/data/mysql/db_revs/241200043.pl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/installer/data/mysql/db_revs/241200018.pl b/installer/data/mysql/db_revs/241200018.pl index 55077738247..b49e0e95827 100755 --- a/installer/data/mysql/db_revs/241200018.pl +++ b/installer/data/mysql/db_revs/241200018.pl @@ -22,7 +22,7 @@ return { ); $dbh->do(q{ UPDATE additional_field_values SET new_record_id = CAST(record_id AS CHAR(11)); }); $dbh->do(q{ ALTER TABLE additional_field_values DROP COLUMN record_id; }); - $dbh->do(q{ ALTER TABLE additional_field_values CHANGE COLUMN new_record_id record_id VARCHAR(11); }); + $dbh->do(q{ ALTER TABLE additional_field_values CHANGE COLUMN new_record_id record_id VARCHAR(11) NOT NULL; }); say_success( $out, "Converted record_id to VARCHAR" ); } else { diff --git a/installer/data/mysql/db_revs/241200042.pl b/installer/data/mysql/db_revs/241200042.pl index f49864efb05..687d7068138 100755 --- a/installer/data/mysql/db_revs/241200042.pl +++ b/installer/data/mysql/db_revs/241200042.pl @@ -12,7 +12,7 @@ return { if ( column_exists( 'aqbookseller_aliases', 'alias_id' ) ) { $dbh->do( q{ - ALTER TABLE aqbookseller_aliases CHANGE COLUMN alias_id vendor_alias_id INT(11); + ALTER TABLE aqbookseller_aliases CHANGE COLUMN alias_id vendor_alias_id INT(11) NOT NULL AUTO_INCREMENT; } ); say_success( diff --git a/installer/data/mysql/db_revs/241200043.pl b/installer/data/mysql/db_revs/241200043.pl index 2b3926871d0..0454360bb46 100755 --- a/installer/data/mysql/db_revs/241200043.pl +++ b/installer/data/mysql/db_revs/241200043.pl @@ -12,7 +12,7 @@ return { if ( column_exists( 'aqbookseller_interfaces', 'interface_id' ) ) { $dbh->do( q{ - ALTER TABLE aqbookseller_interfaces CHANGE COLUMN interface_id vendor_interface_id INT(11); + ALTER TABLE aqbookseller_interfaces CHANGE COLUMN interface_id vendor_interface_id INT(11) NOT NULL AUTO_INCREMENT; } ); say_success( -- 2.50.0