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 Commented May 26, 2020 at 18:33
  • i couldnot downgrade particular component(MYSQL) in lampstack. Is there any other way to solve this problem
    – GGC
    Commented May 26, 2020 at 19:04

2 Answers 2

8

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': Commented Aug 4, 2020 at 5:29
0

this is work for me also, thanks bro..

case 'smallint':
        case 'smallint unsigned':
            return Table::TYPE_SMALLINT;
        case 'mediumint':
        case 'int':
        case 'int unsigned':
            return Table::TYPE_INTEGER;

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.