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 – 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
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': – Vishal Baraiya 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.