У меня есть модели SQLAlchemy поверх MySQL db. Мне нужно запросить почти все модели (строковые или текстовые поля) и найти все, что содержит определенную подстроку c. А также примените обычную фильтрацию, например object_type = type1. Например:
class Model1(Model):
name = Column(String(100), nullable=False, unique=True)
version = Column(String(100))
description = Column(String(100))
updated_at = Column(TIMESTAMP(timezone=True))
# other fields
class Model2(Model):
name = Column(String(100), nullable=False, unique=True)
version = Column(String(100))
description = Column(String(100))
updated_at = Column(TIMESTAMP(timezone=True))
# other fields
class Model3(Model):
name = Column(String(100), nullable=False, unique=True)
version = Column(String(100))
description = Column(String(100))
updated_at = Column(TIMESTAMP(timezone=True))
# other fields
А затем запросите что-то вроде:
db.query(
Model1.any_of_all_columns.contains('sub_string') or
Model2.any_of_all_columns.contains('sub_string') or
Model3.any_of_all_columns.contains('sub_string')
).all()
Можно ли создать такой запрос ORM в одном SQL к базе данных и динамически добавить Model ( таблица) имена и столбцы?