If so, under what conditions do I need to do this, and under which do I not?
If so, then I also assume that if I add or remove contracts, or change something about the contract’s constructor I’ll need to do this, but are there any other situations?
If so, under what conditions do I need to do this, and under which do I not?
If so, then I also assume that if I add or remove contracts, or change something about the contract’s constructor I’ll need to do this, but are there any other situations?
No, you do not need to recreate the schema for any of the reasons you mentioned.
The only reasons to rerun with createSchema=true
are
If you have added any custom indices directly to the database regarding your contract structure, you may wish to update those indices. It doesn’t make any difference to JSON API, though.