From 03b1c81f4565c6ecc43a49a7d2fe1e8c6572003f Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 15 Oct 2025 16:41:38 +0100 Subject: [PATCH] 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. --- installer/data/mysql/db_revs/231200022.pl | 32 ++++++++++++----------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/installer/data/mysql/db_revs/231200022.pl b/installer/data/mysql/db_revs/231200022.pl index c823a103f51..7b36eec4a15 100755 --- a/installer/data/mysql/db_revs/231200022.pl +++ b/installer/data/mysql/db_revs/231200022.pl @@ -7,24 +7,26 @@ return { my ($args) = @_; my ( $dbh, $out ) = @$args{qw(dbh out)}; - if ( !column_exists( 'vendor_edi_accounts', 'download_port' ) ) { - $dbh->do( - q{ - ALTER TABLE vendor_edi_accounts ADD COLUMN `download_port` int(11) DEFAULT NULL AFTER `password` - } - ); + if ( column_exists( 'vendor_edi_accounts', 'password' ) ) { + if ( !column_exists( 'vendor_edi_accounts', 'download_port' ) ) { + $dbh->do( + q{ + ALTER TABLE vendor_edi_accounts ADD COLUMN `download_port` int(11) DEFAULT NULL AFTER `password` + } + ); - say $out "Added column 'vendor_edi_accounts.download_port'"; - } + say $out "Added column 'vendor_edi_accounts.download_port'"; + } - if ( !column_exists( 'vendor_edi_accounts', 'upload_port' ) ) { - $dbh->do( - q{ - ALTER TABLE vendor_edi_accounts ADD COLUMN `upload_port` int(11) DEFAULT NULL AFTER `download_port` - } - ); + if ( !column_exists( 'vendor_edi_accounts', 'upload_port' ) ) { + $dbh->do( + q{ + ALTER TABLE vendor_edi_accounts ADD COLUMN `upload_port` int(11) DEFAULT NULL AFTER `download_port` + } + ); - say $out "Added column 'vendor_edi_accounts.upload_port'"; + say $out "Added column 'vendor_edi_accounts.upload_port'"; + } } }, }; -- 2.51.0