Добрый день!
Ответ 
angru является правильным, я просто дам несколько дополнительных уточнений.
Как правильно сказано, 
generate_mapping() нужно вызывать один раз после того, как все сущности определены. После этого схема фиксируется и добавлять новые сущности в нее уже нельзя.
Когда объявляется класс сущности, то он становится доступен как атрибут объекта базы данных. То есть, если сущность опредена как:
db = Database()
class Person(db.Entity):
    name = Required(str)
то после этого можно ссылаться на нее так:  
db.Person. Например, в запросах:
select(p for p in db.Person if p.name.startswith('A'))
Поэтому импортировать модели в main.py необязательно - они уже доступны там как атрибуты объекта 
db.
Часть наиболее важных сущностей можно при желании определить в том же самом файле, где объявляется объект 
db.
Иногда может быть удобнее не объявлять параметры объекта 
Database сразу при его создании, а выполнять метод 
db.bind(...) непосредственно перед выполнением метода 
db.generate_mapping(...) - тогда одни и те же сущности могут использованы с разными типами баз данных (например, SQLite и MySQL).