Before commenting, I've done so much debugging and searching into this issue and if I missed something major, I apologise.
From what I understand, the ORM doesn't care about unsigned. That's fair enough. That leaves it to DBAL to handle it.
However, it's not possible to successfully use something like the following table without having the schema manager complain.
In that code, I'm using a custom type "unsigned_integer" that extends the DBAL integer type with this:
The reason for this is because the ORM won't map unsigned ints for me. Combined with this is an event listener for the class metadata. Something like this:
Now, in the example table above, the schema tool will honour the "id" column, however it won't honour the association join column no matter what I do. My attempts include adding an event listener for class meta data as above (basically tricking the ORM) and also adding an event listener for the schema events.
The other day on GitHub there was a commit (https://github.com/doctrine/doctrine2/commit/a27be2fab61b1cfde4d2ecbc729a4a68816fca76) to help with this, but it's still not all working.
Also, comments and issues on the Jira tracker have said how there's legacy code related to "unsigned" and "default", but I can't tell what's legacy and what's allowed, especially when there's a commit like that one above.
By the way, I have found that the simple unsigned field mapping works. E.g.:
If it helps at all, here's the YAML mapping file for the above table/entity:
Is it possible to 1) fix this or 2) let me know if I'm just doing something wrong?
Note: as I said above, I know that Doctrine DBAL and ORM does not care so much for unsigned ints because of portability, etc. but it seems that because of that commit above (24 days ago), there's a half-implememented/legacy solution going on here.