Worked without issue for me.
[centos@mysql1-T1 ~]$ pt-online-schema-change --version
pt-online-schema-change 3.3.1
[centos@mysql1-T1 ~]$ mysql --version
mysql Ver 8.0.23-14 for Linux on x86_64 (Percona Server (GPL), Release 14, Revision 3558242)
mysql1-T1 mysql> CREATE TABLE `sales_ranks` (
-> `id` int NOT NULL AUTO_INCREMENT,
-> `product_category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
-> `rank` int DEFAULT NULL,
-> `item_id` int DEFAULT NULL,
-> `tenant_id` int DEFAULT NULL,
-> `created_at` datetime DEFAULT NULL,
-> `updated_at` datetime DEFAULT NULL,
-> `marketplace` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
-> `marketplace22` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
-> PRIMARY KEY (`id`),
-> KEY `index_sales_ranks_on_item_id` (`item_id`) USING BTREE,
-> KEY `index_sales_ranks_on_tenant_id` (`tenant_id`) USING BTREE
-> ) ENGINE=InnoDB AUTO_INCREMENT=8203494 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPRESSED;
Query OK, 0 rows affected, 7 warnings (0.08 sec)
mysql1-T1 mysql> show warnings;
+---------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. |
| Warning | 3778 | 'utf8_unicode_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead. |
| Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. |
| Warning | 3778 | 'utf8_unicode_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead. |
| Warning | 3778 | 'utf8_unicode_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead. |
| Warning | 1287 | 'utf8mb3' is deprecated and will be removed in a future release. Please use utf8mb4 instead |
| Warning | 3778 | 'utf8_unicode_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead. |
+---------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7 rows in set (0.00 sec)
mysql1-T1 mysql> Bye
[centos@mysql1-T1 ~]$ pt-online-schema-change --alter-foreign-keys-method=auto --execute --print --alter "ADD column marketplace33 varchar(25)" D=imdb_rocks,t=sales_ranks
No slaves found. See --recursion-method if host mysql1-T1 has slaves.
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
Operation, tries, wait:
analyze_table, 10, 1
copy_rows, 10, 0.25
create_triggers, 10, 1
drop_triggers, 10, 1
swap_tables, 10, 1
update_foreign_keys, 10, 1
No foreign keys reference `imdb_rocks`.`sales_ranks`; ignoring --alter-foreign-keys-method.
Altering `imdb_rocks`.`sales_ranks`...
Creating new table...
CREATE TABLE `imdb_rocks`.`_sales_ranks_new` (
`id` int NOT NULL AUTO_INCREMENT,
`product_category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`rank` int DEFAULT NULL,
`item_id` int DEFAULT NULL,
`tenant_id` int DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
`marketplace` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`marketplace22` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_sales_ranks_on_item_id` (`item_id`) USING BTREE,
KEY `index_sales_ranks_on_tenant_id` (`tenant_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8203494 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPRESSED
Created new table imdb_rocks._sales_ranks_new OK.
Altering new table...
ALTER TABLE `imdb_rocks`.`_sales_ranks_new` ADD column marketplace33 varchar(25)
Altered `imdb_rocks`.`_sales_ranks_new` OK.
2021-08-02T04:04:12 Creating triggers...
-----------------------------------------------------------
Event : DELETE
Name : pt_osc_imdb_rocks_sales_ranks_del
SQL : CREATE TRIGGER `pt_osc_imdb_rocks_sales_ranks_del` AFTER DELETE ON `imdb_rocks`.`sales_ranks` FOR EACH ROW BEGIN DECLARE CONTINUE HANDLER FOR 1146 begin end; DELETE IGNORE FROM `imdb_rocks`.`_sales_ranks_new` WHERE `imdb_rocks`.`_sales_ranks_new`.`id` <=> OLD.`id`; END
Suffix: del
Time : AFTER
-----------------------------------------------------------
-----------------------------------------------------------
Event : UPDATE
Name : pt_osc_imdb_rocks_sales_ranks_upd
SQL : CREATE TRIGGER `pt_osc_imdb_rocks_sales_ranks_upd` AFTER UPDATE ON `imdb_rocks`.`sales_ranks` FOR EACH ROW BEGIN DECLARE CONTINUE HANDLER FOR 1146 begin end; DELETE IGNORE FROM `imdb_rocks`.`_sales_ranks_new` WHERE !(OLD.`id` <=> NEW.`id`) AND `imdb_rocks`.`_sales_ranks_new`.`id` <=> OLD.`id`; REPLACE INTO `imdb_rocks`.`_sales_ranks_new` (`id`, `product_category`, `rank`, `item_id`, `tenant_id`, `created_at`, `updated_at`, `marketplace`, `marketplace22`) VALUES (NEW.`id`, NEW.`product_category`, NEW.`rank`, NEW.`item_id`, NEW.`tenant_id`, NEW.`created_at`, NEW.`updated_at`, NEW.`marketplace`, NEW.`marketplace22`); END
Suffix: upd
Time : AFTER
-----------------------------------------------------------
-----------------------------------------------------------
Event : INSERT
Name : pt_osc_imdb_rocks_sales_ranks_ins
SQL : CREATE TRIGGER `pt_osc_imdb_rocks_sales_ranks_ins` AFTER INSERT ON `imdb_rocks`.`sales_ranks` FOR EACH ROW BEGIN DECLARE CONTINUE HANDLER FOR 1146 begin end; REPLACE INTO `imdb_rocks`.`_sales_ranks_new` (`id`, `product_category`, `rank`, `item_id`, `tenant_id`, `created_at`, `updated_at`, `marketplace`, `marketplace22`) VALUES (NEW.`id`, NEW.`product_category`, NEW.`rank`, NEW.`item_id`, NEW.`tenant_id`, NEW.`created_at`, NEW.`updated_at`, NEW.`marketplace`, NEW.`marketplace22`);END
Suffix: ins
Time : AFTER
-----------------------------------------------------------
2021-08-02T04:04:12 Created triggers OK.
2021-08-02T04:04:12 Copying approximately 1 rows...
INSERT LOW_PRIORITY IGNORE INTO `imdb_rocks`.`_sales_ranks_new` (`id`, `product_category`, `rank`, `item_id`, `tenant_id`, `created_at`, `updated_at`, `marketplace`, `marketplace22`) SELECT `id`, `product_category`, `rank`, `item_id`, `tenant_id`, `created_at`, `updated_at`, `marketplace`, `marketplace22` FROM `imdb_rocks`.`sales_ranks` LOCK IN SHARE MODE /*pt-online-schema-change 5957 copy table*/
2021-08-02T04:04:12 Copied rows OK.
2021-08-02T04:04:12 Analyzing new table...
2021-08-02T04:04:12 Swapping tables...
RENAME TABLE `imdb_rocks`.`sales_ranks` TO `imdb_rocks`.`_sales_ranks_old`, `imdb_rocks`.`_sales_ranks_new` TO `imdb_rocks`.`sales_ranks`
2021-08-02T04:04:12 Swapped original and new tables OK.
2021-08-02T04:04:12 Dropping old table...
DROP TABLE IF EXISTS `imdb_rocks`.`_sales_ranks_old`
2021-08-02T04:04:12 Dropped old table `imdb_rocks`.`_sales_ranks_old` OK.
2021-08-02T04:04:12 Dropping triggers...
DROP TRIGGER IF EXISTS `imdb_rocks`.`pt_osc_imdb_rocks_sales_ranks_del`
DROP TRIGGER IF EXISTS `imdb_rocks`.`pt_osc_imdb_rocks_sales_ranks_upd`
DROP TRIGGER IF EXISTS `imdb_rocks`.`pt_osc_imdb_rocks_sales_ranks_ins`
2021-08-02T04:04:12 Dropped triggers OK.
Successfully altered `imdb_rocks`.`sales_ranks`.
[centos@mysql1-T1 ~]$
[centos@mysql1-T1 ~]$ mysql imdb_rocks
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 767673
Server version: 8.0.23-14 Percona Server (GPL), Release 14, Revision 3558242
Copyright (c) 2009-2021 Percona LLC and/or its affiliates
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
You are enforcing ssl connection via unix socket. Please consider
switching ssl off as it does not make connection via unix socket
any more secure.
mysql1-T1 mysql> show create table sales_ranks\G
*************************** 1. row ***************************
Table: sales_ranks
Create Table: CREATE TABLE `sales_ranks` (
`id` int NOT NULL AUTO_INCREMENT,
`product_category` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`rank` int DEFAULT NULL,
`item_id` int DEFAULT NULL,
`tenant_id` int DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
`marketplace` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`marketplace22` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`marketplace33` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_sales_ranks_on_item_id` (`item_id`) USING BTREE,
KEY `index_sales_ranks_on_tenant_id` (`tenant_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8203494 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPRESSED
1 row in set (0.00 sec)