У нас есть 1 таблица с большим объемом данных, и администратор БД разбил ее на основе определенного параметра. Это означает, что я получил Employee_TX, Employee_NY
вид имен таблиц. Ранее models.py
было просто, как в -
class Employee(Base):
__tablename__ = 'Employee'
name = Column...
state = Column...
Теперь я не хочу создавать 50 новых классов для вновь разбитых таблиц, так как в любом случае мои столбцы одинаковы.
* 1007 Есть ли шаблон, в котором я могу создать отдельный класс и затем использовать его в запросе динамически?
session.query(<Tablename>).filter().all()
Возможно, я ищу какой-то шаблон фабрики или что-то в этом роде.
До сих пор я пробовал запустить al oop как
for state in ['CA', 'TX', 'NY']:
class Employee(Base):
__qualname__ = __tablename__ = 'Employee_{}'.format(state)
name = Column...
state = Column...
но это не работает, и я получаю предупреждение как - SAWarning: This declarative base already contains a class with the same class name and module name as app_models.employee, and will be replaced in the string-lookup table.
Также он не может найти сгенерированный класс, когда я делаю from app_models import Employee_TX
Это * Приложение 1024 * с PostgreSQL в качестве бэкэнда и sqlalchemy используется как ORM