Skip to main content
Bounty Ended with 50 reputation awarded by David Kooijman
deleted 4 characters in body
Source Link
hardik
  • 496
  • 4
  • 13

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

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.

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

deleted 4 characters in body
Source Link
hardik
  • 496
  • 4
  • 13

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 "tinytextenum" to "text" and issue will be fixed.

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 "tinytext" to "text" and issue will be fixed.

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.

Source Link
hardik
  • 496
  • 4
  • 13

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 "tinytext" to "text" and issue will be fixed.