1、首先需要升級版本到1.2.x,我用的是1.2.14驗證的,沒有問題
2、看示例:
class LoadResource(Base): """施壓機資源.""" # def __init__(self): # pass __tablename__ = 'load_resource' # 數據庫名字 id = Column(Integer, primary_key=True, doc='主鍵', comment='主鍵') # 壓測資源主鍵,comment為列注釋 resource_ip = Column(String(50), doc='資源ip', comment='資源ip') # 壓測資源IP resource_zone = Column(String(50), doc='資源區域', comment='資源區域') # 壓測資源區域 project_id = Column(String(250), doc='項目id', comment='項目id') # 占用資源的項目ID scene_id = Column(String(250), doc='場景id', comment='場景id') # 占用資源的場景ID # task_name = Column(String(250)) # 占用資源的任務名字 task_uid = Column(String(250), doc='任務id', comment='任務id') # 占用資源的任務ID,根據任務ID可以得知項目和場景信息 resource_status = Column(Boolean, default=False, doc='資源狀態', comment='資源狀態') # 壓測資源可用狀態,默認False表示可用 gmt_create = Column(TIMESTAMP, server_default=func.now(), doc='創建時間', comment='創建時間') # 創建時間 gmt_modify = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now(), doc='更新時間', comment='更新時間') # 修改時間 __table_args__ = (Index('index(zone,status)', 'resource_zone', 'resource_status'), {'comment': '壓測資源表'}) # 添加索引和表注釋
下面添加索引的方法也可以
class A(Base): __tablename__ = 'table_A' id = Column(Integer, primary_key=True) a = Column(String(32)) b = Column(String(32)) Index('my_index', A.a, A.b)
參考:
https://docs.sqlalchemy.org/en/latest/core/metadata.html