# -*- coding: UTF-8 -*- from sqlalchemy.sql import func from sqlalchemy import ForeignKey, Column, Integer, String, DateTime, Table from sqlalchemy.orm import relationship, backref from database import Base, engine
class ServerInfo(Base): __table__ = Table('info', Base.metadata, autoload=True, autoload_with=engine)
class APMPackage(Base): __tablename__ = 'apm_package' id = Column(Integer, primary_key=True) name = Column(String(100), unique=True) packaging_file = Column(String(200)) unpackaging_path = Column(String(200)) queue = relationship("APMDistributionQueue", backref=backref('package'), cascade='all, delete, delete-orphan')
def __init__(self, name, file, path): self.name = name self.packaging_file = file self.unpackaging_path = path
def __repr__(self): return "%s %s %s %s" % (self.id, self.name, self.packaging_file, self.unpackaging_path)
class APMDistributionQueue(Base): __tablename__ = 'apm_distribution_queue' id = Column(Integer, primary_key=True) mode = Column(String(20), nullable=False) server_id = Column(Integer, ForeignKey(ServerInfo.idx), nullable=False) package_id = Column(Integer, ForeignKey(APMPackage.id), nullable=False) status = Column(Integer, default=1, nullable=False) reg_date = Column(DateTime(timezone=True), default=func.now(), nullable=False) server_info = relationship("ServerInfo", backref=backref('queue'))
def __init__(self, mode, sid, pid): self.mode = mode self.server_id = sid self.package_id = pid
def __repr__(self): return "%s %s %s %s" % (self.id, self.mode, self.server_id, self.package_id) |