def upgrade(): op.alter_column("ds_writers", "writer_top_quantile", existing_type=TINYINT(unsigned=True), nullable=False, server_default='50')
class TECHNOLOGYCATEGORY(Base): __tablename__ = "TECHNOLOGY_CATEGORY" ID = Column(TINYINT(4), primary_key=True) TECHNOLOGY_CATEGORY = Column(String(45, "utf8_bin"), unique=True)
class CLASSIFICATION(Base): __tablename__ = "CLASSIFICATION" ID = Column(TINYINT(4), primary_key=True) CLASSIFICATION = Column(String(15, "utf8_bin"), unique=True)
class DocumentSource(Base): __tablename__ = 'documentSource' documentSourceId = Column(CHAR(100), primary_key=True) name = Column(String(255), nullable=False) hasPaywall = Column(TINYINT(3), server_default=text("'0'"))
Column("MAX_CAP", DECIMAL(7, 3)), Column("MAX_ROC", DECIMAL(4, 0)), ) class TECHNOLOGYCATEGORY(Base): __tablename__ = "TECHNOLOGY_CATEGORY" ID = Column(TINYINT(4), primary_key=True) TECHNOLOGY_CATEGORY = Column(String(45, "utf8_bin"), unique=True) t__MAPPING_FUEL_SOURCE = Table( "_MAPPING_FUEL_SOURCE", metadata, Column("ID", TINYINT(4), server_default=text("'0'")), Column("FUEL_SOURCE", String(45)), Column("FUEL_CATEGORY", String(45)), ) t__MAPPING_TECHNOLOGY_TYPE = Table( "_MAPPING_TECHNOLOGY_TYPE", metadata, Column("ID", TINYINT(4), server_default=text("'0'")), Column("TECHNOLOGY_TYPE", String(60)), Column("TECHNOLOGY_CATEGORY", String(45)), ) t__MAPPING_TECH_FUEL = Table( "_MAPPING_TECH_FUEL", metadata,
class PREDISPATCHPRICESENSITIVITY(Base): __tablename__ = "PREDISPATCH_PRICESENSITIVITIES" __table_args__ = ( Index( "uniq_idx", "PREDISPATCHSEQNO", "REGIONID", "PERIODID", "INTERVENTION", unique=True, ), ) ID = Column(INTEGER(11), primary_key=True) PREDISPATCHSEQNO = Column(BIGINT(20), index=True) REGIONID = Column(ForeignKey("nemweb_meta.REGIONID.id"), index=True) PERIODID = Column(TINYINT(4), index=True) INTERVENTION = Column(TINYINT(4), index=True) INTERVENTION_ACTIVE = Column(TINYINT(4), index=True) DATETIME = Column(DateTime, index=True) RRPEEP1 = Column(DECIMAL(12, 6)) RRPEEP2 = Column(DECIMAL(12, 6)) RRPEEP3 = Column(DECIMAL(12, 6)) RRPEEP4 = Column(DECIMAL(12, 6)) RRPEEP5 = Column(DECIMAL(12, 6)) RRPEEP6 = Column(DECIMAL(12, 6)) RRPEEP7 = Column(DECIMAL(12, 6)) RRPEEP8 = Column(DECIMAL(12, 6)) RRPEEP9 = Column(DECIMAL(12, 6)) RRPEEP10 = Column(DECIMAL(12, 6)) RRPEEP11 = Column(DECIMAL(12, 6)) RRPEEP12 = Column(DECIMAL(12, 6)) RRPEEP13 = Column(DECIMAL(12, 6)) RRPEEP14 = Column(DECIMAL(12, 6)) RRPEEP15 = Column(DECIMAL(12, 6)) RRPEEP16 = Column(DECIMAL(12, 6)) RRPEEP17 = Column(DECIMAL(12, 6)) RRPEEP18 = Column(DECIMAL(12, 6)) RRPEEP19 = Column(DECIMAL(12, 6)) RRPEEP20 = Column(DECIMAL(12, 6)) RRPEEP21 = Column(DECIMAL(12, 6)) RRPEEP22 = Column(DECIMAL(12, 6)) RRPEEP23 = Column(DECIMAL(12, 6)) RRPEEP24 = Column(DECIMAL(12, 6)) RRPEEP25 = Column(DECIMAL(12, 6)) RRPEEP26 = Column(DECIMAL(12, 6)) RRPEEP27 = Column(DECIMAL(12, 6)) RRPEEP28 = Column(DECIMAL(12, 6)) RRPEEP29 = Column(DECIMAL(12, 6)) RRPEEP30 = Column(DECIMAL(12, 6)) RRPEEP31 = Column(DECIMAL(12, 6)) RRPEEP32 = Column(DECIMAL(12, 6)) RRPEEP33 = Column(DECIMAL(12, 6)) RRPEEP34 = Column(DECIMAL(12, 6)) RRPEEP35 = Column(DECIMAL(12, 6)) RRPEEP36 = Column(DECIMAL(12, 6)) RRPEEP37 = Column(DECIMAL(12, 6)) RRPEEP38 = Column(DECIMAL(12, 6)) RRPEEP39 = Column(DECIMAL(12, 6)) RRPEEP40 = Column(DECIMAL(12, 6)) RRPEEP41 = Column(DECIMAL(12, 6)) RRPEEP42 = Column(DECIMAL(12, 6)) RRPEEP43 = Column(DECIMAL(12, 6)) LASTCHANGED = Column(DateTime) REGIONID1 = relationship("REGIONID")
class RUNTYPE(Base): __tablename__ = "RUNTYPE" ID = Column(TINYINT(4), primary_key=True) RUNTYPE = Column(String(45), unique=True)
from sqlalchemy.dialects.mysql import BOOLEAN, FLOAT, SMALLINT, TEXT, TINYINT, VARCHAR metadata = MetaData() payment_method_table = Table( "Payment_Methods", metadata, Column('shortName', VARCHAR(4), primary_key=True, unique=True), Column('logo', VARCHAR(128)), Column('fullName', VARCHAR(64)), ) certification_table = Table( "Certifications_List", metadata, Column('Id', TINYINT(unsigned=True), primary_key=True, unique=True), Column('name', VARCHAR(64)), Column('logo', VARCHAR(128)), Column('url', VARCHAR(128)), ) ff_criterion_table = Table( "FairFrog_Criteria", metadata, Column('Id', TINYINT(unsigned=True), primary_key=True, unique=True), Column('name', VARCHAR(64)), Column('logo', VARCHAR(128)), Column('description', VARCHAR(1024), default=''), ) brand_table = Table(
class Sale(Model): __tablename__ = "discount_sale" discount_value_type = Column(TINYINT()) title = Column(db.String(255)) discount_value = Column(db.DECIMAL(10, 2)) def __str__(self): return self.title @property def discount_value_type_label(self): return DiscountValueTypeKinds(int(self.discount_value_type)).name @classmethod def get_discounted_price(cls, product): sale_product = SaleProduct.query.filter_by(product_id=product.id).first() if sale_product: sale = Sale.get_by_id(sale_product.sale_id) else: sale_category = SaleCategory.query.filter_by( category_id=product.category.id ).first() sale = Sale.get_by_id(sale_category.sale_id) if sale_category else None if sale is None: return 0 if sale.discount_value_type == DiscountValueTypeKinds.fixed.value: return sale.discount_value elif sale.discount_value_type == DiscountValueTypeKinds.percent.value: price = product.basic_price * sale.discount_value / 100 return Decimal(price).quantize(Decimal("0.00")) @property def categories(self): at_ids = ( SaleCategory.query.with_entities(SaleCategory.category_id) .filter(SaleCategory.sale_id == self.id) .all() ) return Category.query.filter(Category.id.in_(id for id, in at_ids)).all() @property def products_ids(self): return ( SaleProduct.query.with_entities(SaleProduct.product_id) .filter(SaleProduct.sale_id == self.id) .all() ) @property def products(self): return Product.query.filter( Product.id.in_(id for id, in self.products_ids) ).all() def update_categories(self, category_ids): origin_ids = ( SaleCategory.query.with_entities(SaleCategory.category_id) .filter_by(sale_id=self.id) .all() ) origin_ids = set(i for i, in origin_ids) new_attrs = set(int(i) for i in category_ids) need_del = origin_ids - new_attrs need_add = new_attrs - origin_ids for id in need_del: SaleCategory.query.filter_by( sale_id=self.id, category_id=id ).first().delete(commit=False) for id in need_add: new = SaleCategory(sale_id=self.id, category_id=id) db.session.add(new) db.session.commit() def update_products(self, product_ids): origin_ids = ( SaleProduct.query.with_entities(SaleProduct.product_id) .filter_by(sale_id=self.id) .all() ) origin_ids = set(i for i, in origin_ids) new_attrs = set(int(i) for i in product_ids) need_del = origin_ids - new_attrs need_add = new_attrs - origin_ids for id in need_del: SaleProduct.query.filter_by(sale_id=self.id, product_id=id).first().delete( commit=False ) for id in need_add: new = SaleProduct(sale_id=self.id, product_id=id) db.session.add(new) db.session.commit() @staticmethod def clear_mc(target): # when update sales, need to update product discounts # for (id,) in target.products_ids: # rdb.delete(MC_KEY_PRODUCT_DISCOUNT_PRICE.format(id)) # need to process so many states, category update etc.. so delete all keys = rdb.keys(MC_KEY_PRODUCT_DISCOUNT_PRICE.format("*")) for key in keys: rdb.delete(key) @classmethod def __flush_insert_event__(cls, target): super().__flush_insert_event__(target) target.clear_mc(target) @classmethod def __flush_after_update_event__(cls, target): super().__flush_after_update_event__(target) target.clear_mc(target) @classmethod def __flush_delete_event__(cls, target): super().__flush_delete_event__(target) target.clear_mc(target)
Model = declarative_base() engine = create_engine(CONFIG.SQLALCHEMY_DATABASE_URI, convert_unicode=CONFIG.SQLALCHEMY_CONVERT_UNICODE, pool_recycle=CONFIG.SQLALCHEMY_POOL_CYCLE, echo=CONFIG.SQLALCHEMY_ECHO, connect_args={'timeout': 15}) # Why pool_recycle : http://docs.sqlalchemy.org/en/rel_0_9/dialects/mysql.html#connection-timeouts _Session = orm.sessionmaker(autocommit=False, autoflush=True, bind=engine) session = orm.scoped_session(_Session) Model.metadata.bind = engine Model.query = session.query_property() UNIQUE_ID = Column(String(36), primary_key=True, default=generate_unique_business_id) EXTERNAL_ID_PRIMARY_KEY = Column(String(30), primary_key=True) NAME = Column(String(255), unique=True) NAME_NULLABLE_FALSE = Column(String(255), unique=True, nullable=False) AUTO_INCREMENTAL_ID = Column(Integer, primary_key=True, autoincrement=True, nullable=False) CREATED_ON = Column(DateTime, default=get_date_time) CREATED_ON_WITH_SERVER_DEFAULT = Column(TIMESTAMP, nullable=False, server_default=text("CURRENT_TIMESTAMP")) MODIFIED_ON = Column(TIMESTAMP, nullable=False, default=get_date_time, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")) DELETED_ON = Column(DateTime) BOOLEAN_TRUE = Column(TINYINT(1), default=1, nullable=False) BOOLEAN_FALSE = Column(TINYINT(1), default=0, nullable=False)
class MySQLEngineSpec(BaseEngineSpec): engine = "mysql" engine_name = "MySQL" max_column_name_length = 64 column_type_mappings: Tuple[Tuple[Pattern[str], Union[TypeEngine, Callable[[Match[str]], TypeEngine]], GenericDataType, ], ..., ] = ( ( re.compile(r"^int.*", re.IGNORECASE), INTEGER(), GenericDataType.NUMERIC, ), ( re.compile(r"^tinyint", re.IGNORECASE), TINYINT(), GenericDataType.NUMERIC, ), ( re.compile(r"^mediumint", re.IGNORECASE), MEDIUMINT(), GenericDataType.NUMERIC, ), ( re.compile(r"^decimal", re.IGNORECASE), DECIMAL(), GenericDataType.NUMERIC, ), ( re.compile(r"^float", re.IGNORECASE), FLOAT(), GenericDataType.NUMERIC, ), ( re.compile(r"^double", re.IGNORECASE), DOUBLE(), GenericDataType.NUMERIC, ), ( re.compile(r"^bit", re.IGNORECASE), BIT(), GenericDataType.NUMERIC, ), ( re.compile(r"^tinytext", re.IGNORECASE), TINYTEXT(), GenericDataType.STRING, ), ( re.compile(r"^mediumtext", re.IGNORECASE), MEDIUMTEXT(), GenericDataType.STRING, ), ( re.compile(r"^longtext", re.IGNORECASE), LONGTEXT(), GenericDataType.STRING, ), ) _time_grain_expressions = { None: "{col}", "PT1S": "DATE_ADD(DATE({col}), " "INTERVAL (HOUR({col})*60*60 + MINUTE({col})*60" " + SECOND({col})) SECOND)", "PT1M": "DATE_ADD(DATE({col}), " "INTERVAL (HOUR({col})*60 + MINUTE({col})) MINUTE)", "PT1H": "DATE_ADD(DATE({col}), " "INTERVAL HOUR({col}) HOUR)", "P1D": "DATE({col})", "P1W": "DATE(DATE_SUB({col}, " "INTERVAL DAYOFWEEK({col}) - 1 DAY))", "P1M": "DATE(DATE_SUB({col}, " "INTERVAL DAYOFMONTH({col}) - 1 DAY))", "P0.25Y": "MAKEDATE(YEAR({col}), 1) " "+ INTERVAL QUARTER({col}) QUARTER - INTERVAL 1 QUARTER", "P1Y": "DATE(DATE_SUB({col}, " "INTERVAL DAYOFYEAR({col}) - 1 DAY))", "1969-12-29T00:00:00Z/P1W": "DATE(DATE_SUB({col}, " "INTERVAL DAYOFWEEK(DATE_SUB({col}, " "INTERVAL 1 DAY)) - 1 DAY))", } type_code_map: Dict[int, str] = {} # loaded from get_datatype only if needed custom_errors: Dict[Pattern[str], Tuple[str, SupersetErrorType, Dict[ str, Any]]] = { CONNECTION_ACCESS_DENIED_REGEX: ( __('Either the username "%(username)s" or the password is incorrect.' ), SupersetErrorType.CONNECTION_ACCESS_DENIED_ERROR, {}, ), CONNECTION_INVALID_HOSTNAME_REGEX: ( __('Unknown MySQL server host "%(hostname)s".'), SupersetErrorType.CONNECTION_INVALID_HOSTNAME_ERROR, {}, ), CONNECTION_HOST_DOWN_REGEX: ( __('The host "%(hostname)s" might be down and can\'t be reached.' ), SupersetErrorType.CONNECTION_HOST_DOWN_ERROR, {}, ), CONNECTION_UNKNOWN_DATABASE_REGEX: ( __('Unable to connect to database "%(database)s".'), SupersetErrorType.CONNECTION_UNKNOWN_DATABASE_ERROR, {}, ), } @classmethod def convert_dttm(cls, target_type: str, dttm: datetime) -> Optional[str]: tt = target_type.upper() if tt == utils.TemporalType.DATE: return f"STR_TO_DATE('{dttm.date().isoformat()}', '%Y-%m-%d')" if tt == utils.TemporalType.DATETIME: datetime_formatted = dttm.isoformat(sep=" ", timespec="microseconds") return f"""STR_TO_DATE('{datetime_formatted}', '%Y-%m-%d %H:%i:%s.%f')""" return None @classmethod def adjust_database_uri(cls, uri: URL, selected_schema: Optional[str] = None) -> None: if selected_schema: uri.database = parse.quote(selected_schema, safe="") @classmethod def get_datatype(cls, type_code: Any) -> Optional[str]: if not cls.type_code_map: # only import and store if needed at least once import MySQLdb ft = MySQLdb.constants.FIELD_TYPE cls.type_code_map = { getattr(ft, k): k for k in dir(ft) if not k.startswith("_") } datatype = type_code if isinstance(type_code, int): datatype = cls.type_code_map.get(type_code) if datatype and isinstance(datatype, str) and datatype: return datatype return None @classmethod def epoch_to_dttm(cls) -> str: return "from_unixtime({col})" @classmethod def _extract_error_message(cls, ex: Exception) -> str: """Extract error message for queries""" message = str(ex) try: if isinstance(ex.args, tuple) and len(ex.args) > 1: message = ex.args[1] except (AttributeError, KeyError): pass return message @classmethod def get_column_spec( # type: ignore cls, native_type: Optional[str], source: utils.ColumnTypeSource = utils.ColumnTypeSource.GET_TABLE, column_type_mappings: Tuple[Tuple[Pattern[str], Union[TypeEngine, Callable[[Match[str]], TypeEngine]], GenericDataType, ], ..., ] = column_type_mappings, ) -> Union[ColumnSpec, None]: column_spec = super().get_column_spec(native_type) if column_spec: return column_spec return super().get_column_spec( native_type, column_type_mappings=column_type_mappings)
class TTipoAgendum(Base): __tablename__ = 't_tipo_agenda' id_tipo_agenda = Column(INTEGER(11), primary_key=True) denominacion = Column(String(500), nullable=False) activo = Column(TINYINT(1), nullable=False)
mysql_default_charset='utf8mb4' ) # The column 'permlink' is CHAR(190) instead of CHAR(255) since the latter # will give error: (1071, 'Specified key was too long; max key length is 767 bytes') hive_posts = sa.Table( 'hive_posts', metadata, sa.Column('id', sa.Integer, primary_key=True), sa.Column('parent_id', sa.Integer), sa.Column('author', CHAR(16), nullable=False), sa.Column('permlink', CHAR(255, ascii=True), nullable=False), sa.Column('community', CHAR(16)), sa.Column('category', CHAR(255, ascii=True), nullable=False), sa.Column('depth', SMALLINT(unsigned=True), nullable=False), sa.Column('created_at', sa.DateTime, nullable=False), sa.Column('is_deleted', TINYINT(1), nullable=False, server_default='0'), sa.Column('is_pinned', TINYINT(1), nullable=False, server_default='0'), sa.Column('is_muted', TINYINT(1), nullable=False, server_default='0'), sa.ForeignKeyConstraint(['author'], ['hive_accounts.name'], name='hive_posts_fk1'), sa.ForeignKeyConstraint(['community'], ['hive_accounts.name'], name='hive_posts_fk2'), sa.ForeignKeyConstraint(['parent_id'], ['hive_posts.id'], name='hive_posts_fk3'), sa.UniqueConstraint('author', 'permlink', name='hive_posts_ux1'), sa.Index('hive_posts_ix1', 'parent_id'), sa.Index('hive_posts_ix2', 'is_deleted'), mysql_engine='InnoDB', mysql_default_charset='utf8mb4' ) hive_follows = sa.Table( 'hive_follows', metadata, sa.Column('follower', CHAR(16), nullable=False),
class Base(DeclarativeBase): """ 基础Model模型对象 """ __abstract__ = True id = Column(BIGINT(20), primary_key=True, comment='序号') parent_id = Column(BIGINT(20), nullable=False, server_default=text("0"), comment='父序号') type = Column(INTEGER(11), nullable=False, server_default=text("0"), comment='类型') sort = Column(INTEGER(11), nullable=False, server_default=text("0"), comment='排序') status = Column(TINYINT(2), nullable=False, server_default=text("0"), comment='状态') is_deleted = Column(TINYINT(1), nullable=False, server_default=text("0"), comment='软删') created_by = Column(BIGINT(20), nullable=False, server_default=text("0"), comment='创建人') created_time = Column(TIMESTAMP, nullable=False, server_default=text("current_timestamp()"), comment='创建时间') updated_by = Column(BIGINT(20), nullable=False, server_default=text("0"), comment='更新人') updated_time = Column( TIMESTAMP, nullable=False, server_default=text( "current_timestamp() ON UPDATE current_timestamp()"), comment='更新时间') code = Column(String(255), nullable=False, server_default=text("''"), comment='编码') name = Column(String(255), nullable=False, server_default=text("''"), comment='名称') label = Column(String(255), nullable=False, server_default=text("''"), comment='标签') logo = Column(String(255), nullable=False, server_default=text("''"), comment='图标') url = Column(String(255), nullable=False, server_default=text("''"), comment='URL') info = Column(String(1000), nullable=False, server_default=text("''"), comment='内容') remark = Column(String(1000), nullable=False, server_default=text("''"), comment='备注') search = Column(LONGTEXT, comment='搜索')
class BIDTYPE(Base): __tablename__ = "BIDTYPE" ID = Column(TINYINT(4), primary_key=True) BIDTYPE = Column(String(10))
class Voucher(Model): __tablename__ = "discount_voucher" type = Column(TINYINT()) title = Column(db.String(255)) code = Column(db.String(16), unique=True) usage_limit = Column(db.Integer()) used = Column(db.Integer(), default=0) start_date = Column(db.Date()) end_date = Column(db.Date()) discount_value_type = Column(TINYINT()) discount_value = Column(db.DECIMAL(10, 2)) limit = Column(db.DECIMAL(10, 2)) category_id = Column(db.Integer()) product_id = Column(db.Integer()) def __str__(self): return self.title @property def type_label(self): return VoucherTypeKinds(int(self.type)).name @property def discount_value_type_label(self): return DiscountValueTypeKinds(int(self.discount_value_type)).name @property def validity_period(self): if self.start_date and self.end_date: return ( datetime.strftime(self.start_date, "%m/%d/%Y") + " - " + datetime.strftime(self.end_date, "%m/%d/%Y") ) return "" @classmethod def generate_code(cls): code = "".join(random.choices(string.ascii_uppercase, k=16)) exist = cls.query.filter_by(code=code).first() if not exist: return code else: return cls.generate_code() def check_available(self, cart=None): if self.start_date and self.start_date > datetime.now(): raise Exception("The voucher code can not use now, please retry later") if self.end_date and self.end_date < datetime.now(): raise Exception("The voucher code has expired") if self.usage_limit and self.usage_limit - self.used < 0: raise Exception("This voucher code has been used out") if cart: self.check_available_by_cart(cart) return True def check_available_by_cart(self, cart): if self.type == VoucherTypeKinds.value.value: if self.limit and cart.subtotal < self.limit: raise Exception( f"The order total amount is not enough({self.limit}) to use this voucher code" ) elif self.type == VoucherTypeKinds.shipping.value: if self.limit and cart.shipping_method_price < self.limit: raise Exception( f"The order shipping price is not enough({self.limit}) to use this voucher code" ) elif self.type == VoucherTypeKinds.product.value: product = Product.get_by_id(self.product_id) # got any product in cart, should be zero if cart.get_product_price(self.product_id) == 0: raise Exception(f"This Voucher Code should be used for {product.title}") if self.limit and cart.get_product_price(self.product_id) < self.limit: raise Exception( f"The product {product.title} total amount is not enough({self.limit}) to use this voucher code" ) elif self.type == VoucherTypeKinds.category.value: category = Category.get_by_id(self.category_id) if cart.get_category_price(self.category_id) == 0: raise Exception( f"This Voucher Code should be used for {category.title}" ) if self.limit and cart.get_category_price(self.category_id) < self.limit: raise Exception( f"The category {category.title} total amount is not enough({self.limit}) to use this voucher code" ) @classmethod def get_by_code(cls, code): return cls.query.filter_by(code=code).first() def get_vouchered_price(self, cart): if self.type == VoucherTypeKinds.value.value: return self.get_voucher_from_price(cart.subtotal) elif self.type == VoucherTypeKinds.shipping.value: return self.get_voucher_from_price(cart.shipping_method_price) elif self.type == VoucherTypeKinds.product.value: return self.get_voucher_from_price(cart.get_product_price(self.product_id)) elif self.type == VoucherTypeKinds.category.value: return self.get_voucher_from_price( cart.get_category_price(self.category_id) ) return 0 def get_voucher_from_price(self, price): if self.discount_value_type == DiscountValueTypeKinds.fixed.value: return self.discount_value if price > self.discount_value else price elif self.discount_value_type == DiscountValueTypeKinds.percent.value: price = price * self.discount_value / 100 return Decimal(price).quantize(Decimal("0.00"))
class DispatchedMarket(Base): __tablename__ = "DispatchedMarket" ID = Column(TINYINT(4), primary_key=True) DispatchedMarket = Column(String(30))
self.lat = lat self.lon = lon self.ids = ids class DBCache: fort_ids_within_range = [] unknown_fort_id = None not_a_fort_id = None if config.DB_ENGINE.startswith('mysql'): from sqlalchemy.dialects.mysql import TINYINT, MEDIUMINT, BIGINT, DOUBLE, LONGTEXT TINY_TYPE = TINYINT(unsigned=True) # 0 to 255 MEDIUM_TYPE = MEDIUMINT(unsigned=True) # 0 to 4294967295 UNSIGNED_HUGE_TYPE = BIGINT(unsigned=True) # 0 to 18446744073709551615 HUGE_TYPE = BigInteger PRIMARY_HUGE_TYPE = HUGE_TYPE FLOAT_TYPE = DOUBLE(precision=18, scale=14, asdecimal=False) LONG_TEXT = LONGTEXT elif config.DB_ENGINE.startswith('postgres'): from sqlalchemy.dialects.postgresql import DOUBLE_PRECISION, TEXT class NumInt(TypeDecorator): '''Modify Numeric type for integers''' impl = Numeric def process_bind_param(self, value, dialect): if value is None:
class Market(Base): __tablename__ = "Market" ID = Column(TINYINT(4), primary_key=True) Market = Column(String(8))
from app.Utils import xstr Column = db.Column String = db.String DateTime = db.DateTime(timezone=True) Date = db.Date Time = db.Time Text = db.Text Integer = db.Integer Float = db.Float String16 = String(16) String64 = String(64) String128 = String(128) String512 = String(512) ForeignKey = db.ForeignKey DayInt = TINYINT(unsigned=True) MonthInt = TINYINT(unsigned=True) YearInt = SMALLINT(unsigned=True) class ModelMixIn: ignored_crud_keys_ins = 'row_id', 'data', 'createDatetime', 'updateDatetime', \ 'max_page', 'curr_page', 'next_page', 'prev_page', 'createdUser_id', 'createdUser' ignored_crud_keys_upd = 'row_id', 'data', 'createDatetime', 'updateDatetime', 'status', \ 'max_page', 'curr_page', 'next_page', 'prev_page', 'createdUser_id', 'createdUser', 'createUserId' related_columns = [] # type: List[Tuple[str,str]] @classmethod def get_ignored_crud_keys_ins(cls): return cls.ignored_crud_keys_ins + tuple(
def compile_bigint_sqlite(type_, compiler, **kw): # pragma: no cover """ For SQLite's AUTOINCREMENT to work on BIGINT columns, we need to map BIGINT to INTEGER. Aside from that, BIGINT is the same as INTEGER for SQLite. See https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#allowing-autoincrement-behavior-sqlalchemy-types-other-than-integer-integer """ # noqa: E501 return 'INTEGER' metadata = MetaData() # Define the Account Types for the AUR. AccountTypes = Table( 'AccountTypes', metadata, Column('ID', TINYINT(unsigned=True), primary_key=True), Column('AccountType', String(32), nullable=False, server_default=text("''")), mysql_engine='InnoDB', mysql_charset='utf8mb4', mysql_collate='utf8mb4_general_ci' ) # User information for each user regardless of type. Users = Table( 'Users', metadata, Column('ID', INTEGER(unsigned=True), primary_key=True), Column('AccountTypeID', ForeignKey('AccountTypes.ID', ondelete="NO ACTION"), nullable=False, server_default=text("1")), Column('Suspended', TINYINT(unsigned=True), nullable=False, server_default=text("0")), Column('Username', String(32), nullable=False, unique=True), Column('Email', String(254), nullable=False, unique=True),
t_reaction_group = Table( 'reaction_group', metadata, Column('id', INTEGER(11), primary_key=True), Column('guild_id', BIGINT(20), nullable=False), Column('channel_id', BIGINT(20), nullable=False), Column('message_id', BIGINT(20), nullable=False, unique=True), Column('name', String(400, 'utf8mb4_unicode_ci')), Column('description', VARCHAR(1000)), Column('bot_managed', INTEGER(11))) t_reaction_role = Table( 'reaction_role', metadata, Column('id', INTEGER(11), primary_key=True), Column('guild_id', BIGINT(20), nullable=False), Column('reaction_group_id', BIGINT(20)), Column('role_id', BIGINT(20)), Column('name', String(45, 'utf8mb4_unicode_ci'), nullable=False), Column('emoji', VARCHAR(200), nullable=False), Column('description', String(400, 'utf8mb4_unicode_ci')), Column('protect_mentions', TINYINT(1))) t_seed_presets = Table( 'seed_presets', metadata, Column('id', INTEGER(11), primary_key=True), Column('name', VARCHAR(45), nullable=False, unique=True), Column('randomizer', VARCHAR(45)), Column('customizer', TINYINT(4)), Column('settings', JSON, nullable=False)) t_spoiler_races = Table( 'spoiler_races', metadata, Column('id', INTEGER(11), primary_key=True), Column('srl_id', String(45, 'utf8_bin'), nullable=False, unique=True), Column('spoiler_url', String(255, 'utf8_bin'), nullable=False), Column('studytime', INTEGER(11)), Column('date', DateTime, server_default=text("CURRENT_TIMESTAMP"))) t_srl_nick_verification = Table(
class Scada_Readings(Base): __tablename__ = 'scada_readings' id = Column(Integer, primary_key=True) duid = Column(CHAR(20)) status_at = Column(DATETIME) dispatch_mw_flag = Column(TINYINT(4)) dispatch_mw_flag_fb = Column(TINYINT(4)) dispatch_mw = Column(DECIMAL(precision=15, scale=5)) dispatch_mw_fb = Column(DECIMAL(precision=15, scale=5)) active_power = Column(DECIMAL(precision=15, scale=5)) six_sec_raise_flag = Column(TINYINT(4)) six_sec_lower_flag = Column(TINYINT(4)) sixty_sec_raise_flag = Column(TINYINT(4)) sixty_sec_lower_flag = Column(TINYINT(4)) five_min_raise_flag = Column(TINYINT(4)) five_min_lower_flag = Column(TINYINT(4)) six_sec_raise_flag_fb = Column(TINYINT(4)) six_sec_lower_flag_fb = Column(TINYINT(4)) sixty_sec_raise_flag_fb = Column(TINYINT(4)) sixty_sec_lower_flag_fb = Column(TINYINT(4)) five_min_raise_flag_fb = Column(TINYINT(4)) five_min_lower_flag_fb = Column(TINYINT(4)) six_sec_raise_mw = Column(DECIMAL(precision=15, scale=5)) six_sec_lower_mw = Column(DECIMAL(precision=15, scale=5)) sixty_sec_raise_mw = Column(DECIMAL(precision=15, scale=5)) sixty_sec_lower_mw = Column(DECIMAL(precision=15, scale=5)) five_min_raise_mw = Column(DECIMAL(precision=15, scale=5)) five_min_lower_mw = Column(DECIMAL(precision=15, scale=5)) six_sec_raise_mw_fb = Column(DECIMAL(precision=15, scale=5)) six_sec_lower_mw_fb = Column(DECIMAL(precision=15, scale=5)) sixty_sec_raise_mw_fb = Column(DECIMAL(precision=15, scale=5)) sixty_sec_lower_mw_fb = Column(DECIMAL(precision=15, scale=5)) five_min_raise_mw_fb = Column(DECIMAL(precision=15, scale=5)) five_min_lower_mw_fb = Column(DECIMAL(precision=15, scale=5)) unit_limit_dispatch_max_flag = Column(TINYINT(4)) unit_limit_dispatch_min_flag = Column(TINYINT(4)) unit_limit_dispatch_max_flag_fb = Column(TINYINT(4)) unit_limit_dispatch_min_flag_fb = Column(TINYINT(4)) unit_limit_dispatch_max_generator_limit = Column( DECIMAL(precision=15, scale=5)) unit_limit_dispatch_min_generator_limit = Column( DECIMAL(precision=15, scale=5)) unit_limit_dispatch_max_generator_limit_fb = Column( DECIMAL(precision=15, scale=5)) unit_limit_dispatch_min_generator_limit_fb = Column( DECIMAL(precision=15, scale=5)) number_gen_units_connected = Column(DECIMAL(precision=15, scale=5)) seconds_until_dispatch_interval_end = Column(DECIMAL(precision=15, scale=5)) dispatch_interval_timestamp_year = Column(DECIMAL(precision=15, scale=5)) dispatch_interval_timestamp_month = Column(DECIMAL(precision=15, scale=5)) dispatch_interval_timestamp_day = Column(DECIMAL(precision=15, scale=5)) dispatch_interval_timestamp_hour = Column(DECIMAL(precision=15, scale=5)) dispatch_interval_timestamp_minute = Column(DECIMAL(precision=15, scale=5)) number_avial = Column(Integer) number_gen = Column(Integer) local_limit_mw = Column(DECIMAL(precision=15, scale=5)) possible_power = Column(DECIMAL(precision=15, scale=5)) forecast_power = Column(DECIMAL(precision=15, scale=5)) met1_irradiance = Column(DECIMAL(precision=15, scale=5)) met1_air_temperature = Column(DECIMAL(precision=15, scale=5)) met1_surface_temperature = Column(DECIMAL(precision=15, scale=5)) met1_wind_speed = Column(DECIMAL(precision=15, scale=5)) met1_wind_direction = Column(DECIMAL(precision=15, scale=5)) met2_irradiance = Column(DECIMAL(precision=15, scale=5)) met2_air_temperature = Column(DECIMAL(precision=15, scale=5)) met2_surface_temperature = Column(DECIMAL(precision=15, scale=5)) met2_wind_speed = Column(DECIMAL(precision=15, scale=5)) met2_wind_direction = Column(DECIMAL(precision=15, scale=5)) CollGrp1_cb_status_open = Column(TINYINT(4)) CollGrp1_cb_status_closed = Column(TINYINT(4)) CollGrp2_cb_status_open = Column(TINYINT(4)) CollGrp2_cb_status_closed = Column(TINYINT(4)) CollGrp5_cb_status_open = Column(TINYINT(4)) CollGrp5_cb_status_closed = Column(TINYINT(4)) CollGrp6_cb_status_open = Column(TINYINT(4)) CollGrp6_cb_status_closed = Column(TINYINT(4)) CollGrp7_cb_status_open = Column(TINYINT(4)) CollGrp7_cb_status_closed = Column(TINYINT(4)) CollGrp8_cb_status_open = Column(TINYINT(4)) CollGrp8_cb_status_closed = Column(TINYINT(4)) CollGrp11_cb_status_open = Column(TINYINT(4)) CollGrp11_cb_status_closed = Column(TINYINT(4)) CollGrp12_cb_status_open = Column(TINYINT(4)) CollGrp12_cb_status_closed = Column(TINYINT(4)) cb_220kV_cp_status_open = Column(TINYINT(4)) cb_220kV_cp_status_closed = Column(TINYINT(4)) cb_33kV_Transformer1A_open = Column(TINYINT(4)) cb_33kV_Transformer1A_closed = Column(TINYINT(4)) cb_33kV_Transformer1B_open = Column(TINYINT(4)) cb_33kV_Transformer1B_closed = Column(TINYINT(4)) cb_1A_Incomer_No1_open = Column(TINYINT(4)) cb_1A_Incomer_No1_closed = Column(TINYINT(4)) cb_1A_Incomer_No2_open = Column(TINYINT(4)) cb_1A_Incomer_No2_closed = Column(TINYINT(4)) cb_1B_Incomer_No1_open = Column(TINYINT(4)) cb_1B_Incomer_No1_closed = Column(TINYINT(4)) cb_1B_Incomer_No2_open = Column(TINYINT(4)) cb_1B_Incomer_No2_closed = Column(TINYINT(4)) CollGrp1_number_available = Column(Integer) CollGrp1_number_generating = Column(Integer) CollGrp2_number_available = Column(Integer) CollGrp2_number_generating = Column(Integer) CollGrp5_number_available = Column(Integer) CollGrp5_number_generating = Column(Integer) CollGrp6_number_available = Column(Integer) CollGrp6_number_generating = Column(Integer) CollGrp7_number_available = Column(Integer) CollGrp7_number_generating = Column(Integer) CollGrp8_number_available = Column(Integer) CollGrp8_number_generating = Column(Integer) CollGrp11_number_available = Column(Integer) CollGrp11_number_generating = Column(Integer) CollGrp12_number_available = Column(Integer) CollGrp12_number_generating = Column(Integer) CollGrp1_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp1_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp2_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp2_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp5_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp5_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp6_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp6_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp7_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp7_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp8_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp8_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp11_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp11_av_track_angle = Column(DECIMAL(precision=15, scale=5)) CollGrp12_active_power = Column(DECIMAL(precision=15, scale=5)) CollGrp12_av_track_angle = Column(DECIMAL(precision=15, scale=5)) inverter1_status = Column(Integer) inverter1_active_power = Column(DECIMAL(precision=15, scale=5)) inverter1_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter2_status = Column(Integer) inverter2_active_power = Column(DECIMAL(precision=15, scale=5)) inverter2_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter3_status = Column(Integer) inverter3_active_power = Column(DECIMAL(precision=15, scale=5)) inverter3_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter4_status = Column(Integer) inverter4_active_power = Column(DECIMAL(precision=15, scale=5)) inverter4_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter5_status = Column(Integer) inverter5_active_power = Column(DECIMAL(precision=15, scale=5)) inverter5_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter6_status = Column(Integer) inverter6_active_power = Column(DECIMAL(precision=15, scale=5)) inverter6_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter7_status = Column(Integer) inverter7_active_power = Column(DECIMAL(precision=15, scale=5)) inverter7_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter8_status = Column(Integer) inverter8_active_power = Column(DECIMAL(precision=15, scale=5)) inverter8_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter9_status = Column(Integer) inverter9_active_power = Column(DECIMAL(precision=15, scale=5)) inverter9_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter10_status = Column(Integer) inverter10_active_power = Column(DECIMAL(precision=15, scale=5)) inverter10_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter11_status = Column(Integer) inverter11_active_power = Column(DECIMAL(precision=15, scale=5)) inverter11_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter12_status = Column(Integer) inverter12_active_power = Column(DECIMAL(precision=15, scale=5)) inverter12_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter13_status = Column(Integer) inverter13_active_power = Column(DECIMAL(precision=15, scale=5)) inverter13_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter14_status = Column(Integer) inverter14_active_power = Column(DECIMAL(precision=15, scale=5)) inverter14_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter15_status = Column(Integer) inverter15_active_power = Column(DECIMAL(precision=15, scale=5)) inverter15_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter16_status = Column(Integer) inverter16_active_power = Column(DECIMAL(precision=15, scale=5)) inverter16_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter17_status = Column(Integer) inverter17_active_power = Column(DECIMAL(precision=15, scale=5)) inverter17_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter18_status = Column(Integer) inverter18_active_power = Column(DECIMAL(precision=15, scale=5)) inverter18_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter19_status = Column(Integer) inverter19_active_power = Column(DECIMAL(precision=15, scale=5)) inverter19_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter20_status = Column(Integer) inverter20_active_power = Column(DECIMAL(precision=15, scale=5)) inverter20_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter21_status = Column(Integer) inverter21_active_power = Column(DECIMAL(precision=15, scale=5)) inverter21_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter22_status = Column(Integer) inverter22_active_power = Column(DECIMAL(precision=15, scale=5)) inverter22_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter23_status = Column(Integer) inverter23_active_power = Column(DECIMAL(precision=15, scale=5)) inverter23_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter24_status = Column(Integer) inverter24_active_power = Column(DECIMAL(precision=15, scale=5)) inverter24_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter25_status = Column(Integer) inverter25_active_power = Column(DECIMAL(precision=15, scale=5)) inverter25_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter26_status = Column(Integer) inverter26_active_power = Column(DECIMAL(precision=15, scale=5)) inverter26_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter27_status = Column(Integer) inverter27_active_power = Column(DECIMAL(precision=15, scale=5)) inverter27_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter28_status = Column(Integer) inverter28_active_power = Column(DECIMAL(precision=15, scale=5)) inverter28_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter29_status = Column(Integer) inverter29_active_power = Column(DECIMAL(precision=15, scale=5)) inverter29_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter30_status = Column(Integer) inverter30_active_power = Column(DECIMAL(precision=15, scale=5)) inverter30_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter31_status = Column(Integer) inverter31_active_power = Column(DECIMAL(precision=15, scale=5)) inverter31_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter32_status = Column(Integer) inverter32_active_power = Column(DECIMAL(precision=15, scale=5)) inverter32_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter33_status = Column(Integer) inverter33_active_power = Column(DECIMAL(precision=15, scale=5)) inverter33_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter34_status = Column(Integer) inverter34_active_power = Column(DECIMAL(precision=15, scale=5)) inverter34_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter35_status = Column(Integer) inverter35_active_power = Column(DECIMAL(precision=15, scale=5)) inverter35_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter36_status = Column(Integer) inverter36_active_power = Column(DECIMAL(precision=15, scale=5)) inverter36_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter37_status = Column(Integer) inverter37_active_power = Column(DECIMAL(precision=15, scale=5)) inverter37_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter38_status = Column(Integer) inverter38_active_power = Column(DECIMAL(precision=15, scale=5)) inverter38_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter39_status = Column(Integer) inverter39_active_power = Column(DECIMAL(precision=15, scale=5)) inverter39_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter40_status = Column(Integer) inverter40_active_power = Column(DECIMAL(precision=15, scale=5)) inverter40_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter41_status = Column(Integer) inverter41_active_power = Column(DECIMAL(precision=15, scale=5)) inverter41_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter42_status = Column(Integer) inverter42_active_power = Column(DECIMAL(precision=15, scale=5)) inverter42_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter43_status = Column(Integer) inverter43_active_power = Column(DECIMAL(precision=15, scale=5)) inverter43_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter44_status = Column(Integer) inverter44_active_power = Column(DECIMAL(precision=15, scale=5)) inverter44_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter45_status = Column(Integer) inverter45_active_power = Column(DECIMAL(precision=15, scale=5)) inverter45_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter46_status = Column(Integer) inverter46_active_power = Column(DECIMAL(precision=15, scale=5)) inverter46_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter47_status = Column(Integer) inverter47_active_power = Column(DECIMAL(precision=15, scale=5)) inverter47_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter48_status = Column(Integer) inverter48_active_power = Column(DECIMAL(precision=15, scale=5)) inverter48_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter49_status = Column(Integer) inverter49_active_power = Column(DECIMAL(precision=15, scale=5)) inverter49_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter50_status = Column(Integer) inverter50_active_power = Column(DECIMAL(precision=15, scale=5)) inverter50_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter51_status = Column(Integer) inverter51_active_power = Column(DECIMAL(precision=15, scale=5)) inverter51_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter52_status = Column(Integer) inverter52_active_power = Column(DECIMAL(precision=15, scale=5)) inverter52_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter53_status = Column(Integer) inverter53_active_power = Column(DECIMAL(precision=15, scale=5)) inverter53_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter54_status = Column(Integer) inverter54_active_power = Column(DECIMAL(precision=15, scale=5)) inverter54_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter55_status = Column(Integer) inverter55_active_power = Column(DECIMAL(precision=15, scale=5)) inverter55_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter56_status = Column(Integer) inverter56_active_power = Column(DECIMAL(precision=15, scale=5)) inverter56_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter57_status = Column(Integer) inverter57_active_power = Column(DECIMAL(precision=15, scale=5)) inverter57_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter58_status = Column(Integer) inverter58_active_power = Column(DECIMAL(precision=15, scale=5)) inverter58_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter59_status = Column(Integer) inverter59_active_power = Column(DECIMAL(precision=15, scale=5)) inverter59_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter60_status = Column(Integer) inverter60_active_power = Column(DECIMAL(precision=15, scale=5)) inverter60_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter61_status = Column(Integer) inverter61_active_power = Column(DECIMAL(precision=15, scale=5)) inverter61_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter62_status = Column(Integer) inverter62_active_power = Column(DECIMAL(precision=15, scale=5)) inverter62_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter63_status = Column(Integer) inverter63_active_power = Column(DECIMAL(precision=15, scale=5)) inverter63_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter64_status = Column(Integer) inverter64_active_power = Column(DECIMAL(precision=15, scale=5)) inverter64_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter65_status = Column(Integer) inverter65_active_power = Column(DECIMAL(precision=15, scale=5)) inverter65_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter66_status = Column(Integer) inverter66_active_power = Column(DECIMAL(precision=15, scale=5)) inverter66_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter67_status = Column(Integer) inverter67_active_power = Column(DECIMAL(precision=15, scale=5)) inverter67_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter68_status = Column(Integer) inverter68_active_power = Column(DECIMAL(precision=15, scale=5)) inverter68_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter69_status = Column(Integer) inverter69_active_power = Column(DECIMAL(precision=15, scale=5)) inverter69_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter70_status = Column(Integer) inverter70_active_power = Column(DECIMAL(precision=15, scale=5)) inverter70_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter71_status = Column(Integer) inverter71_active_power = Column(DECIMAL(precision=15, scale=5)) inverter71_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter72_status = Column(Integer) inverter72_active_power = Column(DECIMAL(precision=15, scale=5)) inverter72_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter73_status = Column(Integer) inverter73_active_power = Column(DECIMAL(precision=15, scale=5)) inverter73_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter74_status = Column(Integer) inverter74_active_power = Column(DECIMAL(precision=15, scale=5)) inverter74_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter75_status = Column(Integer) inverter75_active_power = Column(DECIMAL(precision=15, scale=5)) inverter75_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter76_status = Column(Integer) inverter76_active_power = Column(DECIMAL(precision=15, scale=5)) inverter76_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter77_status = Column(Integer) inverter77_active_power = Column(DECIMAL(precision=15, scale=5)) inverter77_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter78_status = Column(Integer) inverter78_active_power = Column(DECIMAL(precision=15, scale=5)) inverter78_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter79_status = Column(Integer) inverter79_active_power = Column(DECIMAL(precision=15, scale=5)) inverter79_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter80_status = Column(Integer) inverter80_active_power = Column(DECIMAL(precision=15, scale=5)) inverter80_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter81_status = Column(Integer) inverter81_active_power = Column(DECIMAL(precision=15, scale=5)) inverter81_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter82_status = Column(Integer) inverter82_active_power = Column(DECIMAL(precision=15, scale=5)) inverter82_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter83_status = Column(Integer) inverter83_active_power = Column(DECIMAL(precision=15, scale=5)) inverter83_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter84_status = Column(Integer) inverter84_active_power = Column(DECIMAL(precision=15, scale=5)) inverter84_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter85_status = Column(Integer) inverter85_active_power = Column(DECIMAL(precision=15, scale=5)) inverter85_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter86_status = Column(Integer) inverter86_active_power = Column(DECIMAL(precision=15, scale=5)) inverter86_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter87_status = Column(Integer) inverter87_active_power = Column(DECIMAL(precision=15, scale=5)) inverter87_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter88_status = Column(Integer) inverter88_active_power = Column(DECIMAL(precision=15, scale=5)) inverter88_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter89_status = Column(Integer) inverter89_active_power = Column(DECIMAL(precision=15, scale=5)) inverter89_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter90_status = Column(Integer) inverter90_active_power = Column(DECIMAL(precision=15, scale=5)) inverter90_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter91_status = Column(Integer) inverter91_active_power = Column(DECIMAL(precision=15, scale=5)) inverter91_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter92_status = Column(Integer) inverter92_active_power = Column(DECIMAL(precision=15, scale=5)) inverter92_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter93_status = Column(Integer) inverter93_active_power = Column(DECIMAL(precision=15, scale=5)) inverter93_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter94_status = Column(Integer) inverter94_active_power = Column(DECIMAL(precision=15, scale=5)) inverter94_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter95_status = Column(Integer) inverter95_active_power = Column(DECIMAL(precision=15, scale=5)) inverter95_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter96_status = Column(Integer) inverter96_active_power = Column(DECIMAL(precision=15, scale=5)) inverter96_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter97_status = Column(Integer) inverter97_active_power = Column(DECIMAL(precision=15, scale=5)) inverter97_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter98_status = Column(Integer) inverter98_active_power = Column(DECIMAL(precision=15, scale=5)) inverter98_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter99_status = Column(Integer) inverter99_active_power = Column(DECIMAL(precision=15, scale=5)) inverter99_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter100_status = Column(Integer) inverter100_active_power = Column(DECIMAL(precision=15, scale=5)) inverter100_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter101_status = Column(Integer) inverter101_active_power = Column(DECIMAL(precision=15, scale=5)) inverter101_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter102_status = Column(Integer) inverter102_active_power = Column(DECIMAL(precision=15, scale=5)) inverter102_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter103_status = Column(Integer) inverter103_active_power = Column(DECIMAL(precision=15, scale=5)) inverter103_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter104_status = Column(Integer) inverter104_active_power = Column(DECIMAL(precision=15, scale=5)) inverter104_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter105_status = Column(Integer) inverter105_active_power = Column(DECIMAL(precision=15, scale=5)) inverter105_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter106_status = Column(Integer) inverter106_active_power = Column(DECIMAL(precision=15, scale=5)) inverter106_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter107_status = Column(Integer) inverter107_active_power = Column(DECIMAL(precision=15, scale=5)) inverter107_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter108_status = Column(Integer) inverter108_active_power = Column(DECIMAL(precision=15, scale=5)) inverter108_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter109_status = Column(Integer) inverter109_active_power = Column(DECIMAL(precision=15, scale=5)) inverter109_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter110_status = Column(Integer) inverter110_active_power = Column(DECIMAL(precision=15, scale=5)) inverter110_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter111_status = Column(Integer) inverter111_active_power = Column(DECIMAL(precision=15, scale=5)) inverter111_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter112_status = Column(Integer) inverter112_active_power = Column(DECIMAL(precision=15, scale=5)) inverter112_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter113_status = Column(Integer) inverter113_active_power = Column(DECIMAL(precision=15, scale=5)) inverter113_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter114_status = Column(Integer) inverter114_active_power = Column(DECIMAL(precision=15, scale=5)) inverter114_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter115_status = Column(Integer) inverter115_active_power = Column(DECIMAL(precision=15, scale=5)) inverter115_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter116_status = Column(Integer) inverter116_active_power = Column(DECIMAL(precision=15, scale=5)) inverter116_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter117_status = Column(Integer) inverter117_active_power = Column(DECIMAL(precision=15, scale=5)) inverter117_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter118_status = Column(Integer) inverter118_active_power = Column(DECIMAL(precision=15, scale=5)) inverter118_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter119_status = Column(Integer) inverter119_active_power = Column(DECIMAL(precision=15, scale=5)) inverter119_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter120_status = Column(Integer) inverter120_active_power = Column(DECIMAL(precision=15, scale=5)) inverter120_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter121_status = Column(Integer) inverter121_active_power = Column(DECIMAL(precision=15, scale=5)) inverter121_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter122_status = Column(Integer) inverter122_active_power = Column(DECIMAL(precision=15, scale=5)) inverter122_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter123_status = Column(Integer) inverter123_active_power = Column(DECIMAL(precision=15, scale=5)) inverter123_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter124_status = Column(Integer) inverter124_active_power = Column(DECIMAL(precision=15, scale=5)) inverter124_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter125_status = Column(Integer) inverter125_active_power = Column(DECIMAL(precision=15, scale=5)) inverter125_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter126_status = Column(Integer) inverter126_active_power = Column(DECIMAL(precision=15, scale=5)) inverter126_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter127_status = Column(Integer) inverter127_active_power = Column(DECIMAL(precision=15, scale=5)) inverter127_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter128_status = Column(Integer) inverter128_active_power = Column(DECIMAL(precision=15, scale=5)) inverter128_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter129_status = Column(Integer) inverter129_active_power = Column(DECIMAL(precision=15, scale=5)) inverter129_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter130_status = Column(Integer) inverter130_active_power = Column(DECIMAL(precision=15, scale=5)) inverter130_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter131_status = Column(Integer) inverter131_active_power = Column(DECIMAL(precision=15, scale=5)) inverter131_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter132_status = Column(Integer) inverter132_active_power = Column(DECIMAL(precision=15, scale=5)) inverter132_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter133_status = Column(Integer) inverter133_active_power = Column(DECIMAL(precision=15, scale=5)) inverter133_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter134_status = Column(Integer) inverter134_active_power = Column(DECIMAL(precision=15, scale=5)) inverter134_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter135_status = Column(Integer) inverter135_active_power = Column(DECIMAL(precision=15, scale=5)) inverter135_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter136_status = Column(Integer) inverter136_active_power = Column(DECIMAL(precision=15, scale=5)) inverter136_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter137_status = Column(Integer) inverter137_active_power = Column(DECIMAL(precision=15, scale=5)) inverter137_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter138_status = Column(Integer) inverter138_active_power = Column(DECIMAL(precision=15, scale=5)) inverter138_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter139_status = Column(Integer) inverter139_active_power = Column(DECIMAL(precision=15, scale=5)) inverter139_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter140_status = Column(Integer) inverter140_active_power = Column(DECIMAL(precision=15, scale=5)) inverter140_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter141_status = Column(Integer) inverter141_active_power = Column(DECIMAL(precision=15, scale=5)) inverter141_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter142_status = Column(Integer) inverter142_active_power = Column(DECIMAL(precision=15, scale=5)) inverter142_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter143_status = Column(Integer) inverter143_active_power = Column(DECIMAL(precision=15, scale=5)) inverter143_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter144_status = Column(Integer) inverter144_active_power = Column(DECIMAL(precision=15, scale=5)) inverter144_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter145_status = Column(Integer) inverter145_active_power = Column(DECIMAL(precision=15, scale=5)) inverter145_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter146_status = Column(Integer) inverter146_active_power = Column(DECIMAL(precision=15, scale=5)) inverter146_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter147_status = Column(Integer) inverter147_active_power = Column(DECIMAL(precision=15, scale=5)) inverter147_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter148_status = Column(Integer) inverter148_active_power = Column(DECIMAL(precision=15, scale=5)) inverter148_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter149_status = Column(Integer) inverter149_active_power = Column(DECIMAL(precision=15, scale=5)) inverter149_accum_energy = Column(DECIMAL(precision=15, scale=5)) inverter150_status = Column(Integer) inverter150_active_power = Column(DECIMAL(precision=15, scale=5)) inverter150_accum_energy = Column(DECIMAL(precision=15, scale=5))
class Player(db.Model): """A ingame character. Model generated with sqlacodegen. Mapped from https://github.com/otland/forgottenserver/blob/master/schema.sql """ __tablename__ = 'players' id = db.Column(INTEGER(11), primary_key=True) name = db.Column(db.String(255), nullable=False, unique=True) group_id = db.Column(INTEGER(11), nullable=False, server_default=db.text("'1'")) account_id = db.Column(db.ForeignKey('accounts.id', ondelete='CASCADE'), nullable=False, index=True, server_default=db.text("'0'")) level = db.Column(INTEGER(11), nullable=False, server_default=db.text("'1'")) vocation = db.Column(INTEGER(11), nullable=False, index=True, server_default=db.text("'0'")) health = db.Column(INTEGER(11), nullable=False, server_default=db.text("'150'")) healthmax = db.Column(INTEGER(11), nullable=False, server_default=db.text("'150'")) experience = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) lookbody = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) lookfeet = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) lookhead = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) looklegs = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) looktype = db.Column(INTEGER(11), nullable=False, server_default=db.text("'136'")) lookaddons = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) maglevel = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) mana = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) manamax = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) manaspent = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) soul = db.Column(INTEGER(10), nullable=False, server_default=db.text("'0'")) town_id = db.Column(INTEGER(11), nullable=False, server_default=db.text("'1'")) posx = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) posy = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) posz = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) conditions = db.Column(db.LargeBinary, nullable=False) cap = db.Column(INTEGER(11), nullable=False, server_default=db.text("'400'")) sex = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) lastlogin = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) lastip = db.Column(INTEGER(10), nullable=False, server_default=db.text("'0'")) save = db.Column(TINYINT(1), nullable=False, server_default=db.text("'1'")) skull = db.Column(TINYINT(1), nullable=False, server_default=db.text("'0'")) skulltime = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) lastlogout = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) blessings = db.Column(TINYINT(2), nullable=False, server_default=db.text("'0'")) onlinetime = db.Column(INTEGER(11), nullable=False, server_default=db.text("'0'")) deletion = db.Column(BIGINT(15), nullable=False, server_default=db.text("'0'")) balance = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) offlinetraining_time = db.Column(SMALLINT(5), nullable=False, server_default=db.text("'43200'")) offlinetraining_skill = db.Column(INTEGER(11), nullable=False, server_default=db.text("'-1'")) stamina = db.Column(SMALLINT(5), nullable=False, server_default=db.text("'2520'")) skill_fist = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_fist_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) skill_club = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_club_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) skill_sword = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_sword_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) skill_axe = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_axe_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) skill_dist = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_dist_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) skill_shielding = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_shielding_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) skill_fishing = db.Column(INTEGER(10), nullable=False, server_default=db.text("'10'")) skill_fishing_tries = db.Column(BIGINT(20), nullable=False, server_default=db.text("'0'")) account = db.relationship('Account', backref=db.backref('characters', lazy=True)) @property def vocation_name(self): return Vocation(self.vocation).name
class REGIONID(Base): __tablename__ = "REGIONID" id = Column(TINYINT(4), primary_key=True) REGIONID = Column(VARCHAR(6), unique=True)
class BIDTYPE(Base): __tablename__ = "BIDTYPE" ID = Column(TINYINT(4), primary_key=True) BIDTYPE = Column(String(10)) t_DUID = Table( "DUID", metadata, Column("id", SMALLINT(6), server_default=text("'0'")), Column("DUID", String(10)), Column("STATION_NAME_ID", SMALLINT(6)), Column("PARTICIPANT_ID", SMALLINT(6)), Column("REGIONID", TINYINT(4)), Column("FUEL_SOURCE_ID", TINYINT(4)), Column("TECHNOLOGY_ID", TINYINT(4)), Column("CLASSIFICATION_ID", TINYINT(4)), Column("TECHFUEL_ID", TINYINT(4), server_default=text("'0'")), Column("MW", DECIMAL(29, 3)), ) class DispatchedMarket(Base): __tablename__ = "DispatchedMarket" ID = Column(TINYINT(4), primary_key=True) DispatchedMarket = Column(String(30))
class CATEGORY(Base): __tablename__ = "CATEGORY" ID = Column(TINYINT(4), primary_key=True) CATEGORY = Column(String(10, "utf8_bin"), nullable=False, unique=True)
class REGIONID(Base): __tablename__ = "REGIONID" __table_args__ = {"schema": "nemweb_meta"} id = Column(TINYINT(4), primary_key=True) REGIONID = Column(VARCHAR(6), unique=True)
class DISPATCHTYPE(Base): __tablename__ = "DISPATCH_TYPE" ID = Column(TINYINT(4), primary_key=True) DISPATCH_TYPE = Column(String(45, "utf8_bin"), nullable=False, unique=True)
class UserInfo(mysqlpool.Model): __tablename__ = "userInfo" # 定义column userId = mysqlpool.Column( name="userId", type_=INTEGER, autoincrement=True, nullable=False, unique=True, primary_key=True ) userLoginName = mysqlpool.Column( name="userLoginName", type_=VARCHAR(100), unique=True, nullable=True ) userNickName = mysqlpool.Column( name="userNickName", type_=VARCHAR(100), nullable=True ) userEmail = mysqlpool.Column( name="userEmail", type_=VARCHAR(100), nullable=True ) userPassword = mysqlpool.Column( name="userPassword", type_=VARCHAR(100), nullable=True ) userStatus = mysqlpool.Column( name="userStatus", type_=TINYINT(1), nullable=False ) userRoleId = mysqlpool.Column( name="userRoleId", type_=INTEGER, nullable=True ) userIntroduction = mysqlpool.Column( name="userIntroduction", type_=VARCHAR(200), nullable=True ) userAddTime = mysqlpool.Column( name="userAddTime", type_=DATETIME, nullable=False, default=datetime.datetime.now ) userRegisterTime = mysqlpool.Column( name="userRegisterTime", type_=DATETIME, nullable=True ) userUpdateTime = mysqlpool.Column( name="userUpdateTime", type_=DATETIME, nullable=False, default=datetime.datetime.now, onupdate=datetime.datetime.now ) userNewEmail = mysqlpool.Column( name="userNewEmail", type_=VARCHAR(100), nullable=True ) userHeadIconUrl = mysqlpool.Column( name="userHeadIconUrl", type_=VARCHAR(200), nullable=True )