3

Actually I have tried to install magento 2.3.4 using bitnami lampstack-7.2. I got an installation error at 3% itself like this

[ERROR] Magento\Framework\Setup\Exception: Unable to apply patch Magento\Catalog\Setup\Patch\Schema\EnableSegmentation for module Magento_Catalog. Original exception message: Invalid column data type ""

Couldnot downgrade MYSQL server version in lampstack for the version of 5.7. Can anyone suggest me the solution?

Thanks in advance

2
  • check this link --- github.com/magento/magento2/issues/26465 And on my mind i think mysql version issues May 26 '20 at 18:33
  • i couldnot downgrade particular component(MYSQL) in lampstack. Is there any other way to solve this problem
    – GGC
    May 26 '20 at 19:04
6

please use the below solution

vendor/magento/framework/DB/Adapter/Pdo/Mysql.php

line 1846

after line

case 'smallint':

add

case 'smallint unsigned':

and after line

case 'int':

add

case 'int unsigned':

or full method code

protected function _getColumnTypeByDdl($column)
    {
        switch ($column['DATA_TYPE']) {
            case 'bool':
                return Table::TYPE_BOOLEAN;
            case 'tinytext':
            case 'char':
            case 'varchar':
            case 'text':
            case 'mediumtext':
            case 'longtext':
                return Table::TYPE_TEXT;
            case 'blob':
            case 'mediumblob':
            case 'longblob':
                return Table::TYPE_BLOB;
            case 'tinyint':
            case 'smallint':
            case 'smallint unsigned':
                return Table::TYPE_SMALLINT;
            case 'mediumint':
            case 'int':
            case 'int unsigned':
                return Table::TYPE_INTEGER;
            case 'bigint':
                return Table::TYPE_BIGINT;
            case 'datetime':
                return Table::TYPE_DATETIME;
            case 'timestamp':
                return Table::TYPE_TIMESTAMP;
            case 'date':
                return Table::TYPE_DATE;
            case 'float':
                return Table::TYPE_FLOAT;
            case 'decimal':
            case 'numeric':
                return Table::TYPE_DECIMAL;
        }
    }

This worked for me. Hope this works for you as well, Thank You.

1
  • perfect solution but need to add one change => case 'int unsigned': Aug 4 '20 at 5:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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