diContainer->get(Connection::class); $incorrectIndexes = $connection->executeQuery( "SELECT DISTINCT ISS.TABLE_NAME, ISS.INDEX_NAME, ISS.COLUMN_NAME, ISS.NON_UNIQUE, ISC.CHARACTER_MAXIMUM_LENGTH, ISC.DATA_TYPE FROM INFORMATION_SCHEMA.STATISTICS ISS JOIN INFORMATION_SCHEMA.COLUMNS ISC ON ISC.COLUMN_NAME = ISS.COLUMN_NAME AND ISC.TABLE_NAME = ISS.TABLE_NAME WHERE ISS.TABLE_NAME LIKE :prefix AND ISS.NON_UNIQUE = 0 AND ISC.DATA_TYPE = 'varchar' AND ISC.CHARACTER_MAXIMUM_LENGTH > 191;", ['prefix' => Env::$dbPrefix . '%'] )->fetchAllAssociative(); if (!empty($incorrectIndexes)) { $this->fail("The following unique indexes use varchar column, but have incorrect length over 191 chars:\n " . json_encode($incorrectIndexes, JSON_PRETTY_PRINT)); } } }