robertsantiago opened a new issue, #14376:
URL: https://github.com/apache/grails-core/issues/14376

   I have a Grails application and using the database migration plugin (DBM) it 
fails to generate the correct MySQL type for byte arrays.
   
   I have the following domain field with constraints and mapping:
   ```
   byte[] byteData
   
   static constraints = {
       byteData(nullable: false, maxSize: 250000)
   }
   
   static mapping = {
       byteData(column: 'byte_data', type: 'binary')
   }
   ```
   Without the DBM plugin, the table in question would generate a field of type 
`MEDIUMBLOB `. If the `maxSize` constraint is removed, then the generated type 
would be `TINYBLOB `. I would expect the DBM plugin to generate from either the 
GORM classes or from the MySQL database the change sets for the byte array with 
its size constraint correctly but this is not the case.
   
   When I use `**dbm-generate-gorm-changelog**` or `**dbm-generate-changelog**` 
they both result in the same column command inside the changeset as follows:
   ```
   column(name: "byte_data", type: "BLOB") {
       constraints(nullable: "false")
   }
   ```
   It seems that the commands are ignoring the `maxSize` constraint specified 
above which causes a problem when we assign arrays longer than what the `BLOB` 
type allows.
   
   We can manually change the type to `MEDIUMBLOB` in the change set although 
it seems like a hack. Not sure if this is a known problem or if it is a problem 
at all. I would appreciate any advice on this issue.
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to