migrations icon indicating copy to clipboard operation
migrations copied to clipboard

BLOB, TEXT, GEOMETRY or JSON column '<name>' can't have a default value

Open malc0mn opened this issue 1 year ago • 0 comments

Bug Report

Q A
BC Break no (actually not sure)
Version 3.6.0

Summary

When setting a default value to a property mapped as json, the migration created on MySQL 8.0.33 will be faulty. The default value for BLOB, TEXT, GEOMETRY or JSON must be written as an expression, see https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html section Explicit Default Handling as of MySQL 8.0.13

Current behavior

Generated migration with a mapping of json and default value of '[]' generates this migration:

[...] my_column_name JSON DEFAULT \'[]\' NOT NULL [...]

How to reproduce

Simply create a mapping of type json with default value '[]' and generate a migration.

Expected behavior

Generated migration with a mapping of json and default value of '[]' should generate this migration (note the added parenthesis):

[...] my_column_name JSON DEFAULT (\'[]\') NOT NULL [...]

malc0mn avatar Jul 26 '23 09:07 malc0mn