Why should it be optional? I can't think of a use case for `--write-sql` where it would be useful to leave this out.

The main place I can see `--write-sql` being useful are:

* If you want to lock down the permissions of the DB so that the user that doctrine is configured to use is unable to change the DB structure, and you have to be root (or another user) to make those changes
* Something has gone wrong and you want to individually step through each step of the migration
* If you want to preview the SQL statements that running the migration is going to run

In the first 2 cases, you definitely want the migration_versions table to be updated. In the last case, it makes no difference either way, you can just ignore it.

`--write-sql` should write the same sql that would get executed otherwise. If you want a `--dont-update-migration-versions` option, then it should work the same when not doing `--write-sql`