The way it's currently coded, schema-tool task is enabled --force by default.
This means that it'll attempt to execute every single SQL command without actually use error checking in SQL statements. One good example is if you attempt to --drop same schema twice. It'll generate a PDOException to you noticing that table does not exist (on second execution).
Instead of get errors on second attempt, it should gently notify it worked smoothly, except if --force is requested. To support this approach (specifically for --drop, but it should be applied for other types too), it is required to change the way we currently drop tables. Instead of do this:
It should try this approach:
The idea is to --drop --force to execute like it is currently and --drop is only execute if exists approach. Same for --create, which means --force will attempt without care of existance in database. --create without --force check for previous existance and drop/create it again.
Problem is that not all drivers support it natively. Here is what my research gave me so far:
*MS SQL Server*
This is quite complex... maybe we should try:
Only information I got so far. Check if the table exists: