Dropping foreign key constraints
For reference (for anyone googling this) if you want to drop a table in MySQL without regard to its foreign key constraints, you can temporarily [`SET FOREIGN_KEY_CHECKS = 0`](https://stackoverflow.com/a/8538716/2438538). Something like this:

```python
# disable foreign key checks (lasts for this session only)
db.execute_sql("SET FOREIGN_KEY_CHECKS=0")

# drop any tables as usual
db.drop_tables([ModelA, ModelB])

# (optionally) re-enable foreign key checks
db.execute_sql("SET FOREIGN_KEY_CHECKS=1")
``` This is a consequence of using an ill-advised database schema.

Peewee's migrations module (`playhouse.migrate`; ([docs](http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#migrate)) contains helpers for dropping foreign-key constraints, but in the case of a circular FK you'll need to disable the constraint check like you have in your example.
I have a situation with [circular foreign key dependencies](http://docs.peewee-orm.com/en/latest/peewee/models.html#circular-foreign-key-dependencies), and I followed the approach of using a `DeferredForeignKey`. I am using MySQL.

As mentioned in the docs, in order to use this approach I need to explicitly create foreign key constraints:

> To create the tables and the foreign-key constraint, you can use the `SchemaManager.create_foreign_key()` method to create the constraint after creating the tables

However, once they are created, _how do I drop foreign key constraints in peewee?_ Does it make sense to add a `drop_foreign_key()` method? Otherwise, if I drop a table during development, for example, I get a `peewee.InternalError`:

```
peewee.InternalError: (3730, "Cannot drop table 'image' referenced by a foreign key constraint 'fk_user_profile_image_id_refs_image' on table 'user'.")
```
