Jira issue originally created by user @guilhermeblanco:
When using schema tool, Doctrine tries to infer the Doctrine type via the mapped types in Platform.
It should first try to read from the comment; if found, ignore the Database type inference.
Comment created by @beberlei:
Why is this a bug? Can you say some more about why we need to do this and what error occurs?
Comment created by @guilhermeblanco:
This issue is strictly correlated to the commit I've done here: e25c774
Mainly, we may have legacy database that we do know how Doctrine should operate. Under this circumstance, we may want to add a comment to the field defining the Doctrine DBAL type.
Even though after doing this, Doctrine still complains (in my situation, a SET column type) that it's unable to handle this column type.
That happens because MySQL Schema Manager (and others) first looks for the column type:
which automatically fails.
But if we first try to look for the commented data type:
And forget about the rest if it finds one definition there, it would allow even unknown data types to be managed instead of forcing to define the DBAL Type compatible.
Comment created by firstname.lastname@example.org:
This also applies for a type of yaml.
/*** @Column(type="yaml") **/
protected $data = array();
./scripts/doctrine orm:schema-tool:update --dump-sql
ALTER TABLE meta CHANGE data data LONGTEXT NOT NULL;
Very frustrating.... Might be related to http://www.doctrine-project.org/jira/browse/[DBAL-42](http://www.doctrine-project.org/jira/browse/DBAL-42)
Comment created by @deeky666:
[email@example.com] You have defined a custom data type. You need to override Type::requiresSQLCommentHint() to return true in your custom data type, otherwise Doctrine cannot infer the custom type mapping from the column comment and the comparator will always detect changes between Yaml and LONGTEXT. This is not directly related to this issue here I think.
[guiblanco] I don't really get the issue you describe here. Is it maybe fixed already? Otherwise can you maybe try to explain again so that I can fix that?