Affects Version/s: 2.1.6
Component/s: Schema Managers
Security Level: All
Environment:Macintosh OS X 10.7.2
Homebrew PHP 5.3.6 (CLI SAPI)
Doctrine DBAL v2.1.6, installed via Symfony2's vendor scripts
When using the DBAL MySQL schema manager to create migrations or update the schema directly, it can create conflicts with custom types due to the way it processes some non-DBAL types in _getPortableTableColumnDefinition.
I recently implemented a binary-string type, using the MySQL BINARY/VARBINARY columns (as opposed to blob, which I see has been adopted in 2.2), due to the content for my application always being a 60 byte binary string. Doctrine has been working fine with it, but upon generating my next migration, I discovered that the schema manager wanted to re-set the column's length.
Generated SQL: "ALTER TABLE User CHANGE password password VARBINARY(60) NOT NULL"
It appears that this is caused by lines 138 & 139 of MySqlSchemaManager.php clearing the column's length. There doesn't seem to be any other code pertaining to MySQL and binary/varbinary, so removing these two lines should be safe and save trouble for future users, without causing issues for those who choose to implement it as a blob or similar.
|Field||Original Value||New Value|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Fix Version/s||2.1.7 [ 10200 ]|
|Fix Version/s||2.2.3 [ 10210 ]|
|Resolution||Fixed [ 1 ]|
|Workflow||jira [ 13700 ]||jira-feedback2 [ 17830 ]|
|Workflow||jira-feedback2 [ 17830 ]||jira-feedback3 [ 20185 ]|