When calculating table diffs, SQLServerSchemaManager returns column definitions for identity columns with _autoincrement set to FALSE.
This causes the schema update SQL generation to pump out a
ALTER TABLE x ALTER COLUMN id INT IDENTITY NOT NULL
for every single identity column in the schema.
The culprit is in DBAL\Schema\SQLServerSchemaManager, starting at line 43:
When the column in question is an identity int column, the TYPE_NAME is "int identity". The second line of the snippet drops the "identity" signifier, causing the following lines that determine autoincrement to do nothing.
I simply moved the second line to below the autoincrement block ie:
This change solves this issue for me, and as far as I can tell, has no other consequences.