1

After being able to update magento to 2.3.2 Which is in current state when I try to run the command bin/magento setup:upgrade: get the below error

root@---:/var/www/html# bin/magento setup:upgrade
Cache cleared successfully
File system cleanup:
/var/www/html/generated/code/Composer
/var/www/html/generated/code/MSP
/var/www/html/generated/code/Magento
/var/www/html/generated/code/Mageplaza
/var/www/html/generated/code/Symfony
The directory '/var/www/html/generated/metadata/' doesn't exist - skipping cleanup
Updating modules:
Schema creation/updates:
**Cannot process definition to array for type enum**

anyone knows where this error comes from and how to solve it

1
  • Check the permissions on of the generaed folder in the root directory of your magento installation. to temporary test this run chmod 777 -R generation/ then rerun the upgrade if all is well then you know that is the isssue and you can go to devdocs.magento.com/guides/v2.3/install-gde/prereq/… and refer to the permission guide on magento Commented Sep 10, 2019 at 10:21

1 Answer 1

1

You are getting this error because "data type" of any third party extension's table column is enum.

So you need to find out column name using debug in following file.

See below file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and check this fromDefinition() and add debug code to find column name.

public function fromDefinition(array $data)
{
    $type = $data['type'];
    if (!isset($this->definitionProcessors[$type])) {

       echo "<pre>";
       print_r($data); exit();

       throw new \InvalidArgumentException(
       sprintf("Cannot process definition to array for type %s", $type)
            );
    }

    $definitionProcessor = $this->definitionProcessors[$type];
    return $definitionProcessor->fromDefinition($data);
}

Please run again setup:upgrade and you will get array of column data in console. from this array you will get name of column from your third party extension table.

Now from that table please change column's data type "enum" to "text" and issue will be fixed.

REF: Cannot process definition to array for type tinytext in Magento 2.3.0

https://magento.stackexchange.com/a/279384/60921

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.