Doctrine DBAL
  1. Doctrine DBAL
  2. DBAL-84

Long string fields are being silently changed to 255 characters in the schema

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0, 2.0.1
    • Fix Version/s: 2.0.2, 2.1
    • Component/s: Schema Managers
    • Labels:
      None

      Description

      I have an entity like this:

      /**
       * @orm:Entity
       */
      class Product
      {
          /**
           * @orm:Id
           * @orm:Column(name="Merchant",type="string",length=50)
           */
          protected $merchant;
      
          /**
           * @orm:Column(name="Name",type="string",length=500)
           */
          protected $name;
      }

      When I change the length of $name field to 4000 it updates the schema like it is supposed to:

      php.exe -f console doctrine:schema:update --dump-sql
      ALTER TABLE product CHANGE Name Name VARCHAR(4000) NOT NULL

      But when I change the length to 5000 it just silently without any warning uses value 255 instead:

      php.exe -f console doctrine:schema:update --dump-sql
      ALTER TABLE product CHANGE Name Name VARCHAR(255) NOT NULL

      I had to look into actual table definition using mysql browser to find this issue because doctrine doesn't even warn about it. This could lead to some pretty serious bugs!

        Activity

        Hide
        Benjamin Eberlei added a comment -

        Fixed in master and 2.0.x

        Show
        Benjamin Eberlei added a comment - Fixed in master and 2.0.x

          People

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

            Dates

            • Created:
              Updated:
              Resolved: