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

GGC
  • 31
  • 2
  • check this link --- https://github.com/magento/magento2/issues/26465 And on my mind i think mysql version issues – Mohit Patel 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

2 Answers2

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.

Vishal Baraiya
  • 2,816
  • 1
  • 11
  • 22
Smita Kagwade
  • 1,403
  • 3
  • 17
  • 39
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;
Hardik Patel
  • 63
  • 1
  • 11