delete_instance causes error if tables are not created
Peewee should only be traversing the graph of tables related by foreign-key, so my guess is that you have some weird stuff going on in your foreign-key inheritance because Peewee will not traverse subclasses blindly. If you can provide a minimal example showing a bug I will reopen. A minimal example is no problem. 
As you will see the class `Child` is not created as a table and is only used as a template to be inherited from.

```
# docker run --name postgres -e POSTGRES_DB=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -d -p 5432:5432 postgres

from peewee import *

pg_db = PostgresqlDatabase('postgres', user='postgres', password='postgres',
                           host='localhost', port=5432)

class Parent(Model):
    name = CharField()
    class Meta:
        database = pg_db

class Child(Model):
    parent = ForeignKeyField(Parent)
    class Meta:
        database = pg_db

class Son(Child):
    boys_name = CharField()

class Daughter(Child):
    girls_name = CharField()

if __name__ == '__main__':
    pg_db.create_tables([Parent, Son, Daughter])
    parent = Parent.create(name='dad')
    Son.create(boys_name='jim', parent=parent)
    Daughter.create(girls_name='jane', parent=parent)
    parent.delete_instance(recursive=True)
``` Oh, I see what you mean - thank you, you are correct this does produce an error due to the missing Child table. Unfortunately, this is not something I am planning to fix, as inheritance + foreign-keys has always been rather fraught territory. Peewee models maintain an in-memory graph of their relations and there is no way to differentiate between a model that is used as a simple "base-class" only.

My recommendation would be to put the foreign-keys on the base-classes *OR* declare your foreign-keys such that they specify the appropriate on_delete/on_update behavior and then avoid using recursive delete-instance.

```python
parent = ForeignKeyField(Parent, on_delete='cascade')
```

Putting FKs on base-classes is also problematic because of the way backrefs are set-up. It's truly better to just put them where they live.
Hi there,

we are using peewee to create a medium complex data structur. We are using inheritance since a lot of table are similar to each other. We do this by creating template classes which are not created as tables later on. These classes are picked up by delete_instance although they are created as tables. Which causes an error. 
Is this a bug and can be fixed by checking whether a table is created? Or is there a workaroud / hint for me to make this work without creating my template classes as tables?

Thanks a lot in advance