給定一組列名及其類型,目標是
實例化一個表和相應的映射類。sqlalchemy動態創建表和映射類
它與此處發佈的問題有關:Dynamic Class Creation in 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 could not assemble any primary key columns for mapped table
我的問題是如何指定的主鍵作爲類創建的一部分。 並創建下課後,我需要調用映射如下:
mapper(cls, table)