Cannot process definition to array for type tinytext on Magento 2.3.0












1















I'm getting following error "Cannot process definition to array for type tinytext" on Magento 2.3.0 when executing setup:upgrade command.



Thanks










share|improve this question

























  • Has a solution already been found? I have the same problem. Thanks Chris

    – Christoph
    Dec 1 '18 at 12:16











  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. You can also add a bounty to draw more attention to this question once you have enough reputation. - From Review

    – sv3n
    Dec 1 '18 at 13:04
















1















I'm getting following error "Cannot process definition to array for type tinytext" on Magento 2.3.0 when executing setup:upgrade command.



Thanks










share|improve this question

























  • Has a solution already been found? I have the same problem. Thanks Chris

    – Christoph
    Dec 1 '18 at 12:16











  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. You can also add a bounty to draw more attention to this question once you have enough reputation. - From Review

    – sv3n
    Dec 1 '18 at 13:04














1












1








1


1






I'm getting following error "Cannot process definition to array for type tinytext" on Magento 2.3.0 when executing setup:upgrade command.



Thanks










share|improve this question
















I'm getting following error "Cannot process definition to array for type tinytext" on Magento 2.3.0 when executing setup:upgrade command.



Thanks







magento2 setup-upgrade magento2.3.0






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 5 '18 at 6:21









Aasim Goriya

2,7151734




2,7151734










asked Nov 30 '18 at 7:18









Pradeep SankuPradeep Sanku

7,80613055




7,80613055













  • Has a solution already been found? I have the same problem. Thanks Chris

    – Christoph
    Dec 1 '18 at 12:16











  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. You can also add a bounty to draw more attention to this question once you have enough reputation. - From Review

    – sv3n
    Dec 1 '18 at 13:04



















  • Has a solution already been found? I have the same problem. Thanks Chris

    – Christoph
    Dec 1 '18 at 12:16











  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. You can also add a bounty to draw more attention to this question once you have enough reputation. - From Review

    – sv3n
    Dec 1 '18 at 13:04

















Has a solution already been found? I have the same problem. Thanks Chris

– Christoph
Dec 1 '18 at 12:16





Has a solution already been found? I have the same problem. Thanks Chris

– Christoph
Dec 1 '18 at 12:16













This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. You can also add a bounty to draw more attention to this question once you have enough reputation. - From Review

– sv3n
Dec 1 '18 at 13:04





This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. You can also add a bounty to draw more attention to this question once you have enough reputation. - From Review

– sv3n
Dec 1 '18 at 13:04










3 Answers
3






active

oldest

votes


















6














You are getting this error because "data type" of any third party extension's table's column is tinytext.



So you need to find out column name using debug in following file.



Open this file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and check this fromDefinition() method and then add debug code to find column name.



public function fromDefinition(array $data)
{
$type = $data['type'];
if (!isset($this->definitionProcessors[$type])) {

/* Add Code for Debug */

echo "<pre>";
print_r($data); exit();

/* Code End */

throw new InvalidArgumentException(
sprintf("Cannot process definition to array for type %s", $type)
);
}

$definitionProcessor = $this->definitionProcessors[$type];
return $definitionProcessor->fromDefinition($data);
}


After that please run setup:upgrade command and you will get array of column data in console. so from this array you will get the 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.



SECOND METHOD



Please export the database and search for keywords tinytext, you will found a table which use this format, Now changed it to TEXT and the problem solved.



Note : You might also get issues from ENUM and MEDIUMINT data type as well, so do the same steps if get any other data type issue.






share|improve this answer


























  • thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

    – Pradeep Sanku
    Dec 5 '18 at 9:38








  • 1





    This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

    – David Stone
    Dec 14 '18 at 23:52











  • @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

    – Aasim Goriya
    Dec 31 '18 at 5:37



















1














In my case, Wordpress was being used with the Fishpig integration. In wp_comments, the comment_author was set to TINYTEXT. The problem was resolved by changing that column declaration.






share|improve this answer































    0














    A handy little SQL script if anyone wants to know which columns have tinytext types defined.



    SELECT TABLE_NAME,
    `COLUMNS`.`COLUMN_NAME` AS `name`, `COLUMNS`.`COLUMN_DEFAULT` AS `default`,
    `COLUMNS`.`DATA_TYPE` AS `type`, IF(IS_NULLABLE = "YES", true, false) AS `nullable`,
    `COLUMNS`.`COLUMN_TYPE` AS `definition`, `COLUMNS`.`EXTRA` AS `extra`,
    IF(COLUMN_COMMENT = "", NULL, COLUMN_COMMENT) AS `comment`
    FROM `information_schema`.`COLUMNS`
    WHERE (TABLE_SCHEMA = '<table_schema>') AND (`COLUMNS`.`DATA_TYPE` = 'tinytext');


    Helped me find the offending third-party module quickly.





    share























      Your Answer








      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "479"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f251920%2fcannot-process-definition-to-array-for-type-tinytext-on-magento-2-3-0%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      6














      You are getting this error because "data type" of any third party extension's table's column is tinytext.



      So you need to find out column name using debug in following file.



      Open this file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and check this fromDefinition() method and then add debug code to find column name.



      public function fromDefinition(array $data)
      {
      $type = $data['type'];
      if (!isset($this->definitionProcessors[$type])) {

      /* Add Code for Debug */

      echo "<pre>";
      print_r($data); exit();

      /* Code End */

      throw new InvalidArgumentException(
      sprintf("Cannot process definition to array for type %s", $type)
      );
      }

      $definitionProcessor = $this->definitionProcessors[$type];
      return $definitionProcessor->fromDefinition($data);
      }


      After that please run setup:upgrade command and you will get array of column data in console. so from this array you will get the 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.



      SECOND METHOD



      Please export the database and search for keywords tinytext, you will found a table which use this format, Now changed it to TEXT and the problem solved.



      Note : You might also get issues from ENUM and MEDIUMINT data type as well, so do the same steps if get any other data type issue.






      share|improve this answer


























      • thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

        – Pradeep Sanku
        Dec 5 '18 at 9:38








      • 1





        This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

        – David Stone
        Dec 14 '18 at 23:52











      • @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

        – Aasim Goriya
        Dec 31 '18 at 5:37
















      6














      You are getting this error because "data type" of any third party extension's table's column is tinytext.



      So you need to find out column name using debug in following file.



      Open this file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and check this fromDefinition() method and then add debug code to find column name.



      public function fromDefinition(array $data)
      {
      $type = $data['type'];
      if (!isset($this->definitionProcessors[$type])) {

      /* Add Code for Debug */

      echo "<pre>";
      print_r($data); exit();

      /* Code End */

      throw new InvalidArgumentException(
      sprintf("Cannot process definition to array for type %s", $type)
      );
      }

      $definitionProcessor = $this->definitionProcessors[$type];
      return $definitionProcessor->fromDefinition($data);
      }


      After that please run setup:upgrade command and you will get array of column data in console. so from this array you will get the 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.



      SECOND METHOD



      Please export the database and search for keywords tinytext, you will found a table which use this format, Now changed it to TEXT and the problem solved.



      Note : You might also get issues from ENUM and MEDIUMINT data type as well, so do the same steps if get any other data type issue.






      share|improve this answer


























      • thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

        – Pradeep Sanku
        Dec 5 '18 at 9:38








      • 1





        This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

        – David Stone
        Dec 14 '18 at 23:52











      • @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

        – Aasim Goriya
        Dec 31 '18 at 5:37














      6












      6








      6







      You are getting this error because "data type" of any third party extension's table's column is tinytext.



      So you need to find out column name using debug in following file.



      Open this file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and check this fromDefinition() method and then add debug code to find column name.



      public function fromDefinition(array $data)
      {
      $type = $data['type'];
      if (!isset($this->definitionProcessors[$type])) {

      /* Add Code for Debug */

      echo "<pre>";
      print_r($data); exit();

      /* Code End */

      throw new InvalidArgumentException(
      sprintf("Cannot process definition to array for type %s", $type)
      );
      }

      $definitionProcessor = $this->definitionProcessors[$type];
      return $definitionProcessor->fromDefinition($data);
      }


      After that please run setup:upgrade command and you will get array of column data in console. so from this array you will get the 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.



      SECOND METHOD



      Please export the database and search for keywords tinytext, you will found a table which use this format, Now changed it to TEXT and the problem solved.



      Note : You might also get issues from ENUM and MEDIUMINT data type as well, so do the same steps if get any other data type issue.






      share|improve this answer















      You are getting this error because "data type" of any third party extension's table's column is tinytext.



      So you need to find out column name using debug in following file.



      Open this file /vendor/magento/framework/Setup/Declaration/Schema/Db/DefinitionAggregator.php and check this fromDefinition() method and then add debug code to find column name.



      public function fromDefinition(array $data)
      {
      $type = $data['type'];
      if (!isset($this->definitionProcessors[$type])) {

      /* Add Code for Debug */

      echo "<pre>";
      print_r($data); exit();

      /* Code End */

      throw new InvalidArgumentException(
      sprintf("Cannot process definition to array for type %s", $type)
      );
      }

      $definitionProcessor = $this->definitionProcessors[$type];
      return $definitionProcessor->fromDefinition($data);
      }


      After that please run setup:upgrade command and you will get array of column data in console. so from this array you will get the 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.



      SECOND METHOD



      Please export the database and search for keywords tinytext, you will found a table which use this format, Now changed it to TEXT and the problem solved.



      Note : You might also get issues from ENUM and MEDIUMINT data type as well, so do the same steps if get any other data type issue.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Jan 7 at 18:58

























      answered Dec 5 '18 at 6:34









      Aasim GoriyaAasim Goriya

      2,7151734




      2,7151734













      • thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

        – Pradeep Sanku
        Dec 5 '18 at 9:38








      • 1





        This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

        – David Stone
        Dec 14 '18 at 23:52











      • @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

        – Aasim Goriya
        Dec 31 '18 at 5:37



















      • thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

        – Pradeep Sanku
        Dec 5 '18 at 9:38








      • 1





        This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

        – David Stone
        Dec 14 '18 at 23:52











      • @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

        – Aasim Goriya
        Dec 31 '18 at 5:37

















      thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

      – Pradeep Sanku
      Dec 5 '18 at 9:38







      thanks for your clue. i had found that colum and i am sharing the answer how i resolved. +1 vote

      – Pradeep Sanku
      Dec 5 '18 at 9:38






      1




      1





      This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

      – David Stone
      Dec 14 '18 at 23:52





      This is clearly a regression and a bug. Any table declared in the magento database with a type of ENUM, TINYTEXT or MEDIUMINT will cause this problem even if it's not managed by magento. It should be possible to have magento and wordpress share the same database. They even suppord table prefixes for this reason. Has a bug been reported about this?

      – David Stone
      Dec 14 '18 at 23:52













      @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

      – Aasim Goriya
      Dec 31 '18 at 5:37





      @PradeepSanku please accept my ans if its usefull to you, so it will help others for this type of issues. and let me know if you have any question. Thanks!

      – Aasim Goriya
      Dec 31 '18 at 5:37













      1














      In my case, Wordpress was being used with the Fishpig integration. In wp_comments, the comment_author was set to TINYTEXT. The problem was resolved by changing that column declaration.






      share|improve this answer




























        1














        In my case, Wordpress was being used with the Fishpig integration. In wp_comments, the comment_author was set to TINYTEXT. The problem was resolved by changing that column declaration.






        share|improve this answer


























          1












          1








          1







          In my case, Wordpress was being used with the Fishpig integration. In wp_comments, the comment_author was set to TINYTEXT. The problem was resolved by changing that column declaration.






          share|improve this answer













          In my case, Wordpress was being used with the Fishpig integration. In wp_comments, the comment_author was set to TINYTEXT. The problem was resolved by changing that column declaration.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 7 at 18:22









          bassplayer7bassplayer7

          1,4991119




          1,4991119























              0














              A handy little SQL script if anyone wants to know which columns have tinytext types defined.



              SELECT TABLE_NAME,
              `COLUMNS`.`COLUMN_NAME` AS `name`, `COLUMNS`.`COLUMN_DEFAULT` AS `default`,
              `COLUMNS`.`DATA_TYPE` AS `type`, IF(IS_NULLABLE = "YES", true, false) AS `nullable`,
              `COLUMNS`.`COLUMN_TYPE` AS `definition`, `COLUMNS`.`EXTRA` AS `extra`,
              IF(COLUMN_COMMENT = "", NULL, COLUMN_COMMENT) AS `comment`
              FROM `information_schema`.`COLUMNS`
              WHERE (TABLE_SCHEMA = '<table_schema>') AND (`COLUMNS`.`DATA_TYPE` = 'tinytext');


              Helped me find the offending third-party module quickly.





              share




























                0














                A handy little SQL script if anyone wants to know which columns have tinytext types defined.



                SELECT TABLE_NAME,
                `COLUMNS`.`COLUMN_NAME` AS `name`, `COLUMNS`.`COLUMN_DEFAULT` AS `default`,
                `COLUMNS`.`DATA_TYPE` AS `type`, IF(IS_NULLABLE = "YES", true, false) AS `nullable`,
                `COLUMNS`.`COLUMN_TYPE` AS `definition`, `COLUMNS`.`EXTRA` AS `extra`,
                IF(COLUMN_COMMENT = "", NULL, COLUMN_COMMENT) AS `comment`
                FROM `information_schema`.`COLUMNS`
                WHERE (TABLE_SCHEMA = '<table_schema>') AND (`COLUMNS`.`DATA_TYPE` = 'tinytext');


                Helped me find the offending third-party module quickly.





                share


























                  0












                  0








                  0







                  A handy little SQL script if anyone wants to know which columns have tinytext types defined.



                  SELECT TABLE_NAME,
                  `COLUMNS`.`COLUMN_NAME` AS `name`, `COLUMNS`.`COLUMN_DEFAULT` AS `default`,
                  `COLUMNS`.`DATA_TYPE` AS `type`, IF(IS_NULLABLE = "YES", true, false) AS `nullable`,
                  `COLUMNS`.`COLUMN_TYPE` AS `definition`, `COLUMNS`.`EXTRA` AS `extra`,
                  IF(COLUMN_COMMENT = "", NULL, COLUMN_COMMENT) AS `comment`
                  FROM `information_schema`.`COLUMNS`
                  WHERE (TABLE_SCHEMA = '<table_schema>') AND (`COLUMNS`.`DATA_TYPE` = 'tinytext');


                  Helped me find the offending third-party module quickly.





                  share













                  A handy little SQL script if anyone wants to know which columns have tinytext types defined.



                  SELECT TABLE_NAME,
                  `COLUMNS`.`COLUMN_NAME` AS `name`, `COLUMNS`.`COLUMN_DEFAULT` AS `default`,
                  `COLUMNS`.`DATA_TYPE` AS `type`, IF(IS_NULLABLE = "YES", true, false) AS `nullable`,
                  `COLUMNS`.`COLUMN_TYPE` AS `definition`, `COLUMNS`.`EXTRA` AS `extra`,
                  IF(COLUMN_COMMENT = "", NULL, COLUMN_COMMENT) AS `comment`
                  FROM `information_schema`.`COLUMNS`
                  WHERE (TABLE_SCHEMA = '<table_schema>') AND (`COLUMNS`.`DATA_TYPE` = 'tinytext');


                  Helped me find the offending third-party module quickly.






                  share











                  share


                  share










                  answered 6 mins ago









                  Nathaniel RogersNathaniel Rogers

                  9316




                  9316






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Magento Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f251920%2fcannot-process-definition-to-array-for-type-tinytext-on-magento-2-3-0%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Magento 2 controller redirect on button click in phtml file

                      Polycentropodidae