Учитывая набор имен столбцов и их типов, цель состоит в том, чтобы
создать экземпляр таблицы и соответствующий сопоставленный класс.
Это связано с вопросом, размещенным здесь: Создание динамического класса в SQLAlchemy.
Пока у меня есть следующее:
table = Table(tbl,
metadata,
*(Column(col, ctype, primary_key=pk, index=idx) for col, ctype, pk, idx in zip(attrs, types, primary_keys, indexes))
)
Это создает объект таблицы. Теперь мне нужно создать соответствующий класс.
mydict={'__tablename__':tbl}
cls = type(cls_name, (Base,), mydict)
Это дает мне следующую ошибку:
ArgumentError: Mapper Mapper|persons_with_coord|t_persons_w_coord не удалось собрать ни одного столбца первичного ключа для сопоставленной таблицы
Мой вопрос заключается в том, как указать первичные ключи как часть создания класса. И после создания класса мне нужно вызвать mapper следующим образом:
mapper(cls, table)