fix: add workaround to avoid missing schema columns

more columns will need to be added to this workaround i'm sure, but
this takes care of a couple small ones
This commit is contained in:
Lance Edgar 2025-01-15 10:59:14 -06:00
parent b8ca60b508
commit 7aaa35dac7

View file

@ -1039,12 +1039,11 @@ class MemberType(Base):
ssi = sa.Column(sa.Boolean(), nullable=True)
ignoreSales = sa.Column(sa.Boolean(), nullable=True, default=False)
ignore_sales = orm.synonym('ignoreSales')
# nb. this must be added explicitly if DB is new enough
#ignore_sales = sa.Column('ignoreSales', sa.Boolean(), nullable=True, default=False)
# TODO: this was apparently added "recently" - isn't present in all DBs
# (need to figure out how to conditionally include it in model?)
# sales_code = sa.Column('salesCode', sa.Integer(), nullable=True)
# nb. this must be added explicitly if DB is new enough
#sales_code = sa.Column('salesCode', sa.Integer(), nullable=True)
def __str__(self):
return self.description or ""
@ -1842,3 +1841,22 @@ class PurchaseOrderNote(Base):
def __str__(self):
return self.notes or ""
# the rest of this is a workaround to deal with the fact that some
# CORE databases have columns which others do not. i had assumed that
# all would be more or less the same but not so in practice. so if
# your DB *does* have these columns, you must invoke the function
# below in order to merge them into your schema. you should do this
# on app startup and they'll be available normally from then on.
RUNTIME = {'added_latest_columns': False}
def use_latest_columns():
if RUNTIME['added_latest_columns']:
return
MemberType.ignore_sales = sa.Column('ignoreSales', sa.Boolean(), nullable=True, default=False)
MemberType.sales_code = sa.Column('salesCode', sa.Integer(), nullable=True)
RUNTIME['added_latest_columns'] = True