Doctrine DBAL
  1. Doctrine DBAL
  2. DBAL-346

Generated schema fails on MySQL (BLOB/TEXT cant have DEFAULT value)

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.2.2
    • Fix Version/s: 2.3
    • Component/s: Schema Managers
    • Security Level: All
    • Labels:
    • Environment:
      Symfony 2.1.x (dev/master), Doctrine 2.2.3, MySQL 5.5.x

      Description

      In my symfony 2.1 project i was including JMSPaymentCoreBundle and did the vanilla installation.

      After that i ran

      php app/console doctrine:schema:update --dump-sql
      php app/console doctrine:schema:update --force
      

      A lot of schema updates were done. I ran it again, and two schema updates were still showing up.
      Running the command again, and they still show up.

      I then tried to run the two schema updates against my database and MySQL complains with the following error:

      Error: 1101 - BLOB/TEXT column 'extended_data' can't have a default value
      

      According to the Documentation BLOB/TEXT indeed cannot have default values. I am not sure why Doctrine thinks it has to set this default value.

      The statements look like this:

      sascha@debian:/var/www/myproject/Symfony$ php app/console doctrine:schema:update --dump-sql
      ALTER TABLE payment_instructions CHANGE extended_data extended_data LONGTEXT NOT NULL COMMENT '(DC2Type:extended_payment_data)';
      ALTER TABLE financial_transactions CHANGE extended_data extended_data LONGTEXT DEFAULT NULL COMMENT '(DC2Type:extended_payment_data)'
      

      I already reported this problem in the JMSPaymentCoreBundle Issue Queue where i then was referred to over here.

      Also, i am not sure if Doctrine DBAL is the best match for this issue, so if it is wrong please move it to the right project issue queue.

      Thank you very much and best of Regards!
      Sascha

        Activity

        Sascha Ahmann created issue -
        Sascha Ahmann made changes -
        Field Original Value New Value
        Description In my symfony 2.1 project i was including [JMSPaymentCoreBundle|https://github.com/schmittjoh/JMSPaymentCoreBundle] and did the vanilla installation.

        After that i ran

        {quote}
        php app/console doctrine:schema:update --dump-sql
        php app/console doctrine:schema:update --force
        {quote}

        A lot of schema updates were done. I ran it again, and two schema updates were still showing up.
        Running the command again, and they still show up.

        I then tried to run the two schema updates against my database and MySQL complains with the following error:

        {quote}
        Error: 1101 - BLOB/TEXT column 'extended_data' can't have a default value
        {quote}
        According to the [Documentation|https://dev.mysql.com/doc/refman/5.5/en/blob.html] BLOB/TEXT indeed cannot have default values. I am not sure why Doctrine thinks it has to set this default value.

        The statements look like this:
        {quote}
        sascha@debian:/var/www/myproject/Symfony$ php app/console doctrine:schema:update --dump-sql
        ALTER TABLE payment_instructions CHANGE extended_data extended_data LONGTEXT NOT NULL COMMENT '(DC2Type:extended_payment_data)';
        ALTER TABLE financial_transactions CHANGE extended_data extended_data LONGTEXT DEFAULT NULL COMMENT '(DC2Type:extended_payment_data)'
        {quote}

        First i reportes this problem in the JMSPaymentCoreBundle [Issue|https://github.com/schmittjoh/JMSPaymentCoreBundle/issues/57] Queue and i was referred to the doctrine project.

        Also, i am not sure if Doctrine DBAL is the best match for this issue, so if it is wrong please move it to the right project issue queue.

        Thank you very much and best of Regards!
        Sascha
        In my symfony 2.1 project i was including [JMSPaymentCoreBundle|https://github.com/schmittjoh/JMSPaymentCoreBundle] and did the vanilla installation.

        After that i ran

        {code}
        php app/console doctrine:schema:update --dump-sql
        php app/console doctrine:schema:update --force
        {code}

        A lot of schema updates were done. I ran it again, and two schema updates were still showing up.
        Running the command again, and they still show up.

        I then tried to run the two schema updates against my database and MySQL complains with the following error:

        {code}
        Error: 1101 - BLOB/TEXT column 'extended_data' can't have a default value
        {code}
        According to the [Documentation|https://dev.mysql.com/doc/refman/5.5/en/blob.html] BLOB/TEXT indeed cannot have default values. I am not sure why Doctrine thinks it has to set this default value.

        The statements look like this:
        {code}
        sascha@debian:/var/www/myproject/Symfony$ php app/console doctrine:schema:update --dump-sql
        ALTER TABLE payment_instructions CHANGE extended_data extended_data LONGTEXT NOT NULL COMMENT '(DC2Type:extended_payment_data)';
        ALTER TABLE financial_transactions CHANGE extended_data extended_data LONGTEXT DEFAULT NULL COMMENT '(DC2Type:extended_payment_data)'
        {code}

        First i reportes this problem in the JMSPaymentCoreBundle [Issue|https://github.com/schmittjoh/JMSPaymentCoreBundle/issues/57] Queue and i was referred to the doctrine project.

        Also, i am not sure if Doctrine DBAL is the best match for this issue, so if it is wrong please move it to the right project issue queue.

        Thank you very much and best of Regards!
        Sascha
        Sascha Ahmann made changes -
        Description In my symfony 2.1 project i was including [JMSPaymentCoreBundle|https://github.com/schmittjoh/JMSPaymentCoreBundle] and did the vanilla installation.

        After that i ran

        {code}
        php app/console doctrine:schema:update --dump-sql
        php app/console doctrine:schema:update --force
        {code}

        A lot of schema updates were done. I ran it again, and two schema updates were still showing up.
        Running the command again, and they still show up.

        I then tried to run the two schema updates against my database and MySQL complains with the following error:

        {code}
        Error: 1101 - BLOB/TEXT column 'extended_data' can't have a default value
        {code}
        According to the [Documentation|https://dev.mysql.com/doc/refman/5.5/en/blob.html] BLOB/TEXT indeed cannot have default values. I am not sure why Doctrine thinks it has to set this default value.

        The statements look like this:
        {code}
        sascha@debian:/var/www/myproject/Symfony$ php app/console doctrine:schema:update --dump-sql
        ALTER TABLE payment_instructions CHANGE extended_data extended_data LONGTEXT NOT NULL COMMENT '(DC2Type:extended_payment_data)';
        ALTER TABLE financial_transactions CHANGE extended_data extended_data LONGTEXT DEFAULT NULL COMMENT '(DC2Type:extended_payment_data)'
        {code}

        First i reportes this problem in the JMSPaymentCoreBundle [Issue|https://github.com/schmittjoh/JMSPaymentCoreBundle/issues/57] Queue and i was referred to the doctrine project.

        Also, i am not sure if Doctrine DBAL is the best match for this issue, so if it is wrong please move it to the right project issue queue.

        Thank you very much and best of Regards!
        Sascha
        In my symfony 2.1 project i was including [JMSPaymentCoreBundle|https://github.com/schmittjoh/JMSPaymentCoreBundle] and did the vanilla installation.

        After that i ran

        {code}
        php app/console doctrine:schema:update --dump-sql
        php app/console doctrine:schema:update --force
        {code}

        A lot of schema updates were done. I ran it again, and two schema updates were still showing up.
        Running the command again, and they still show up.

        I then tried to run the two schema updates against my database and MySQL complains with the following error:

        {code}
        Error: 1101 - BLOB/TEXT column 'extended_data' can't have a default value
        {code}
        According to the [Documentation|https://dev.mysql.com/doc/refman/5.5/en/blob.html] BLOB/TEXT indeed cannot have default values. I am not sure why Doctrine thinks it has to set this default value.

        The statements look like this:
        {code}
        sascha@debian:/var/www/myproject/Symfony$ php app/console doctrine:schema:update --dump-sql
        ALTER TABLE payment_instructions CHANGE extended_data extended_data LONGTEXT NOT NULL COMMENT '(DC2Type:extended_payment_data)';
        ALTER TABLE financial_transactions CHANGE extended_data extended_data LONGTEXT DEFAULT NULL COMMENT '(DC2Type:extended_payment_data)'
        {code}

        I already reported this problem in the JMSPaymentCoreBundle [Issue|https://github.com/schmittjoh/JMSPaymentCoreBundle/issues/57] Queue where i then was referred to over here.

        Also, i am not sure if Doctrine DBAL is the best match for this issue, so if it is wrong please move it to the right project issue queue.

        Thank you very much and best of Regards!
        Sascha
        Sascha Ahmann made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 2.3 [ 10184 ]
        Resolution Fixed [ 1 ]

        This list may be incomplete, as errors occurred whilst retrieving source from linked applications:

        • Request to http://www.doctrine-project.org/fisheye/ failed: Error in remote call to 'FishEye 0 (http://www.doctrine-project.org/fisheye/)' (http://www.doctrine-project.org/fisheye) [AbstractRestCommand{path='/rest-service-fe/search-v1/crossRepositoryQuery', params={query=DBAL-346, expand=changesets[0:20].revisions[0:29],reviews}, methodType=GET}] : Received status code 503 (Service Temporarily Unavailable)

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Sascha Ahmann
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: