You are getting this error because "data type" of any third-party extension's table's column is tinytext.
Note: Normally this error happens because of Fishpig Wordpress extension's wp_comment table has tinytext data type
So you need to find out the column name in the following file.
Go to this file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and see this fromDefinition() method and then debug to find column name.
public function fromDefinition(array $data)
{
$type = $data['type'];
if (!isset($this->definitionProcessors[$type])) {
/* Add Code for Debug */
echo "<pre>";
print_r($data); exit();
/* Code End */
throw new \InvalidArgumentException(
sprintf("Cannot process definition to array for type %s", $type)
);
}
$definitionProcessor = $this->definitionProcessors[$type];
return $definitionProcessor->fromDefinition($data);
}
After that please run setup:upgrade
command and you will get an array of column data in the console. so from this array, you will get the name of the column from your third party extension table.
Now from that table please change column's data type "tinytext" to "text" and issue will be fixed.
SECOND METHOD
Please export the database and search for keywords tinytext, you will found a table which uses this format, Now changed it to TEXT and the problem solved.
THIRD METHOD
The easiest and most secure fix is to install WordPress in a separate database to Magento.
This prevents Magento from applying it's DB schema system to the WordPress database and if you use separate DB users as well, it also has the added benefit of being more secure.
Note: You might also get issues from ENUM, TIME and MEDIUMINT data type as well, so do the same steps if get any other data type issue.