Fix DateTimeField defaults for PostgreSQL compatibility
Paperdex and GauntletRun models used int timestamps as defaults which worked in SQLite but fail in PostgreSQL. Changed to datetime.now.
This commit is contained in:
parent
ab1a25aabc
commit
8c039dedf8
@ -69,7 +69,15 @@ CARDSETS = {
|
||||
},
|
||||
"hall-of-fame": {"primary": [x for x in range(1, 30)], "human": ranked_cardsets},
|
||||
"flashback": {
|
||||
"primary": [13, 14, 5, 1, 3, 4, 8], # 2018 + Promos, 2019, 2021, 2022 + Promos, Mario
|
||||
"primary": [
|
||||
13,
|
||||
14,
|
||||
5,
|
||||
1,
|
||||
3,
|
||||
4,
|
||||
8,
|
||||
], # 2018 + Promos, 2019, 2021, 2022 + Promos, Mario
|
||||
"secondary": [24], # 2025
|
||||
"human": [13, 14, 5, 1, 3, 4, 8], # 2018 + Promos, 2019, 2021, 2022 + Promos
|
||||
},
|
||||
@ -642,7 +650,7 @@ class Award(BaseModel):
|
||||
class Paperdex(BaseModel):
|
||||
team = ForeignKeyField(Team)
|
||||
player = ForeignKeyField(Player)
|
||||
created = DateTimeField(default=int(datetime.timestamp(datetime.now()) * 1000))
|
||||
created = DateTimeField(default=datetime.now)
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
@ -711,7 +719,7 @@ class GauntletRun(BaseModel):
|
||||
wins = IntegerField(default=0)
|
||||
losses = IntegerField(default=0)
|
||||
gsheet = CharField(null=True)
|
||||
created = DateTimeField(default=int(datetime.timestamp(datetime.now()) * 1000))
|
||||
created = DateTimeField(default=datetime.now)
|
||||
ended = DateTimeField(null=True) # NULL means run not yet ended
|
||||
|
||||
class Meta:
|
||||
|
||||
138
db_engine.py
138
db_engine.py
@ -10,20 +10,16 @@ from peewee import ModelSelect
|
||||
from playhouse.shortcuts import model_to_dict
|
||||
|
||||
db = SqliteDatabase(
|
||||
'storage/pd_master.db',
|
||||
pragmas={
|
||||
'journal_mode': 'wal',
|
||||
'cache_size': -1 * 64000,
|
||||
'synchronous': 0
|
||||
}
|
||||
"storage/pd_master.db",
|
||||
pragmas={"journal_mode": "wal", "cache_size": -1 * 64000, "synchronous": 0},
|
||||
)
|
||||
|
||||
date = f'{datetime.now().year}-{datetime.now().month}-{datetime.now().day}'
|
||||
log_level = logging.INFO if os.environ.get('LOG_LEVEL') == 'INFO' else 'WARN'
|
||||
date = f"{datetime.now().year}-{datetime.now().month}-{datetime.now().day}"
|
||||
log_level = logging.INFO if os.environ.get("LOG_LEVEL") == "INFO" else "WARN"
|
||||
logging.basicConfig(
|
||||
filename=f'logs/database/{date}.log',
|
||||
format='%(asctime)s - database - %(levelname)s - %(message)s',
|
||||
level=log_level
|
||||
filename=f"logs/database/{date}.log",
|
||||
format="%(asctime)s - database - %(levelname)s - %(message)s",
|
||||
level=log_level,
|
||||
)
|
||||
|
||||
|
||||
@ -39,7 +35,7 @@ def model_to_csv(this_obj, exclude=None) -> List:
|
||||
|
||||
def query_to_csv(all_items: ModelSelect, exclude=None):
|
||||
if all_items.count() == 0:
|
||||
data_list = [['No data found']]
|
||||
data_list = [["No data found"]]
|
||||
else:
|
||||
data_list = [model_csv_headers(all_items[0], exclude=exclude)]
|
||||
for x in all_items:
|
||||
@ -50,29 +46,29 @@ def query_to_csv(all_items: ModelSelect, exclude=None):
|
||||
|
||||
def complex_data_to_csv(complex_data: List):
|
||||
if len(complex_data) == 0:
|
||||
data_list = [['No data found']]
|
||||
data_list = [["No data found"]]
|
||||
else:
|
||||
data_list = [[x for x in complex_data[0].keys()]]
|
||||
for line in complex_data:
|
||||
logging.debug(f'line: {line}')
|
||||
logging.debug(f"line: {line}")
|
||||
this_row = []
|
||||
for key in line:
|
||||
logging.debug(f'key: {key}')
|
||||
logging.debug(f"key: {key}")
|
||||
if line[key] is None:
|
||||
this_row.append('')
|
||||
this_row.append("")
|
||||
|
||||
elif isinstance(line[key], dict):
|
||||
if 'name' in line[key]:
|
||||
this_row.append(line[key]['name'])
|
||||
elif 'abbrev' in line[key]:
|
||||
this_row.append(line[key]['abbrev'])
|
||||
if "name" in line[key]:
|
||||
this_row.append(line[key]["name"])
|
||||
elif "abbrev" in line[key]:
|
||||
this_row.append(line[key]["abbrev"])
|
||||
else:
|
||||
this_row.append(line[key]['id'])
|
||||
this_row.append(line[key]["id"])
|
||||
|
||||
elif isinstance(line[key], int) and line[key] > 100000000:
|
||||
this_row.append(f"'{line[key]}")
|
||||
|
||||
elif isinstance(line[key], str) and ',' in line[key]:
|
||||
elif isinstance(line[key], str) and "," in line[key]:
|
||||
this_row.append(line[key].replace(",", "-_-"))
|
||||
|
||||
else:
|
||||
@ -186,7 +182,7 @@ class Player(BaseModel):
|
||||
mlbplayer = ForeignKeyField(MlbPlayer, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.cardset} {self.p_name} ({self.rarity.name})'
|
||||
return f"{self.cardset} {self.p_name} ({self.rarity.name})"
|
||||
|
||||
# def __eq__(self, other):
|
||||
# if self.cardset.id == other.cardset.id and self.name == other.name:
|
||||
@ -207,21 +203,21 @@ class Player(BaseModel):
|
||||
def get_all_pos(self):
|
||||
all_pos = []
|
||||
|
||||
if self.pos_1 and self.pos_1 != 'CP':
|
||||
if self.pos_1 and self.pos_1 != "CP":
|
||||
all_pos.append(self.pos_1)
|
||||
if self.pos_2 and self.pos_2 != 'CP':
|
||||
if self.pos_2 and self.pos_2 != "CP":
|
||||
all_pos.append(self.pos_2)
|
||||
if self.pos_3 and self.pos_3 != 'CP':
|
||||
if self.pos_3 and self.pos_3 != "CP":
|
||||
all_pos.append(self.pos_3)
|
||||
if self.pos_4 and self.pos_4 != 'CP':
|
||||
if self.pos_4 and self.pos_4 != "CP":
|
||||
all_pos.append(self.pos_4)
|
||||
if self.pos_5 and self.pos_5 != 'CP':
|
||||
if self.pos_5 and self.pos_5 != "CP":
|
||||
all_pos.append(self.pos_5)
|
||||
if self.pos_6 and self.pos_6 != 'CP':
|
||||
if self.pos_6 and self.pos_6 != "CP":
|
||||
all_pos.append(self.pos_6)
|
||||
if self.pos_7 and self.pos_7 != 'CP':
|
||||
if self.pos_7 and self.pos_7 != "CP":
|
||||
all_pos.append(self.pos_7)
|
||||
if self.pos_8 and self.pos_8 != 'CP':
|
||||
if self.pos_8 and self.pos_8 != "CP":
|
||||
all_pos.append(self.pos_8)
|
||||
|
||||
return all_pos
|
||||
@ -235,19 +231,19 @@ class Player(BaseModel):
|
||||
# 'mvp': 2500,
|
||||
# 'hof': 999999999
|
||||
# }
|
||||
logging.info(f'{self.p_name} cost changing from: {self.cost}')
|
||||
self.cost = max(math.floor(self.cost * .95), 1)
|
||||
logging.info(f"{self.p_name} cost changing from: {self.cost}")
|
||||
self.cost = max(math.floor(self.cost * 0.95), 1)
|
||||
# if self.quantity != 999:
|
||||
# self.quantity += 1
|
||||
logging.info(f'{self.p_name} cost now: {self.cost}')
|
||||
logging.info(f"{self.p_name} cost now: {self.cost}")
|
||||
self.save()
|
||||
|
||||
def change_on_buy(self):
|
||||
logging.info(f'{self.p_name} cost changing from: {self.cost}')
|
||||
logging.info(f"{self.p_name} cost changing from: {self.cost}")
|
||||
self.cost = math.ceil(self.cost * 1.1)
|
||||
# if self.quantity != 999:
|
||||
# self.quantity -= 1
|
||||
logging.info(f'{self.p_name} cost now: {self.cost}')
|
||||
logging.info(f"{self.p_name} cost now: {self.cost}")
|
||||
self.save()
|
||||
|
||||
|
||||
@ -274,7 +270,7 @@ class Team(BaseModel):
|
||||
is_ai = IntegerField(null=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'S{self.season} {self.lname}'
|
||||
return f"S{self.season} {self.lname}"
|
||||
|
||||
@staticmethod
|
||||
def get_by_owner(gmid, season=None):
|
||||
@ -300,8 +296,8 @@ class Team(BaseModel):
|
||||
return Team.get_or_none(Team.season == season, Team.abbrev == abbrev.upper())
|
||||
|
||||
def team_hash(self):
|
||||
hash_string = f'{self.sname[-1]}{self.gmid / 6950123:.0f}{self.sname[-2]}{self.gmid / 42069123:.0f}'
|
||||
logging.info(f'string: {hash_string}')
|
||||
hash_string = f"{self.sname[-1]}{self.gmid / 6950123:.0f}{self.sname[-2]}{self.gmid / 42069123:.0f}"
|
||||
logging.info(f"string: {hash_string}")
|
||||
return hash_string
|
||||
|
||||
|
||||
@ -338,9 +334,9 @@ class Card(BaseModel):
|
||||
|
||||
def __str__(self):
|
||||
if self.player:
|
||||
return f'{self.player} - {self.team.sname}'
|
||||
return f"{self.player} - {self.team.sname}"
|
||||
else:
|
||||
return f'Blank - {self.team.sname}'
|
||||
return f"Blank - {self.team.sname}"
|
||||
|
||||
@staticmethod
|
||||
def select_season(season):
|
||||
@ -382,7 +378,7 @@ class Roster(BaseModel):
|
||||
card_26 = ForeignKeyField(Card)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.team} Roster'
|
||||
return f"{self.team} Roster"
|
||||
|
||||
# def get_cards(self, team):
|
||||
# all_cards = Card.select().where(Card.roster == self)
|
||||
@ -499,7 +495,7 @@ class Award(BaseModel):
|
||||
class Paperdex(BaseModel):
|
||||
team = ForeignKeyField(Team)
|
||||
player = ForeignKeyField(Player)
|
||||
created = DateTimeField(default=int(datetime.timestamp(datetime.now())*1000))
|
||||
created = DateTimeField(default=datetime.now)
|
||||
|
||||
# def add_to_paperdex(self, team, cards: list):
|
||||
# for x in players:
|
||||
@ -548,14 +544,25 @@ class GauntletRun(BaseModel):
|
||||
wins = IntegerField(default=0)
|
||||
losses = IntegerField(default=0)
|
||||
gsheet = CharField(null=True)
|
||||
created = DateTimeField(default=int(datetime.timestamp(datetime.now())*1000))
|
||||
ended = DateTimeField(default=0)
|
||||
created = DateTimeField(default=datetime.now)
|
||||
ended = DateTimeField(null=True)
|
||||
|
||||
|
||||
db.create_tables([
|
||||
Roster, BattingStat, PitchingStat, Result, Award, Paperdex, Reward, GameRewards, Notification, GauntletReward,
|
||||
GauntletRun
|
||||
])
|
||||
db.create_tables(
|
||||
[
|
||||
Roster,
|
||||
BattingStat,
|
||||
PitchingStat,
|
||||
Result,
|
||||
Award,
|
||||
Paperdex,
|
||||
Reward,
|
||||
GameRewards,
|
||||
Notification,
|
||||
GauntletReward,
|
||||
GauntletRun,
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
class BattingCard(BaseModel):
|
||||
@ -569,16 +576,18 @@ class BattingCard(BaseModel):
|
||||
hit_and_run = CharField()
|
||||
running = IntegerField()
|
||||
offense_col = IntegerField()
|
||||
hand = CharField(default='R')
|
||||
hand = CharField(default="R")
|
||||
|
||||
|
||||
bc_index = ModelIndex(BattingCard, (BattingCard.player, BattingCard.variant), unique=True)
|
||||
bc_index = ModelIndex(
|
||||
BattingCard, (BattingCard.player, BattingCard.variant), unique=True
|
||||
)
|
||||
BattingCard.add_index(bc_index)
|
||||
|
||||
|
||||
class BattingCardRatings(BaseModel):
|
||||
battingcard = ForeignKeyField(BattingCard)
|
||||
vs_hand = CharField(default='R')
|
||||
vs_hand = CharField(default="R")
|
||||
pull_rate = FloatField()
|
||||
center_rate = FloatField()
|
||||
slap_rate = FloatField()
|
||||
@ -610,7 +619,9 @@ class BattingCardRatings(BaseModel):
|
||||
|
||||
|
||||
bcr_index = ModelIndex(
|
||||
BattingCardRatings, (BattingCardRatings.battingcard, BattingCardRatings.vs_hand), unique=True
|
||||
BattingCardRatings,
|
||||
(BattingCardRatings.battingcard, BattingCardRatings.vs_hand),
|
||||
unique=True,
|
||||
)
|
||||
BattingCardRatings.add_index(bcr_index)
|
||||
|
||||
@ -626,16 +637,18 @@ class PitchingCard(BaseModel):
|
||||
closer_rating = IntegerField(null=True)
|
||||
batting = CharField(null=True)
|
||||
offense_col = IntegerField()
|
||||
hand = CharField(default='R')
|
||||
hand = CharField(default="R")
|
||||
|
||||
|
||||
pc_index = ModelIndex(PitchingCard, (PitchingCard.player, PitchingCard.variant), unique=True)
|
||||
pc_index = ModelIndex(
|
||||
PitchingCard, (PitchingCard.player, PitchingCard.variant), unique=True
|
||||
)
|
||||
PitchingCard.add_index(pc_index)
|
||||
|
||||
|
||||
class PitchingCardRatings(BaseModel):
|
||||
pitchingcard = ForeignKeyField(PitchingCard)
|
||||
vs_hand = CharField(default='R')
|
||||
vs_hand = CharField(default="R")
|
||||
homerun = FloatField()
|
||||
bp_homerun = FloatField()
|
||||
triple = FloatField()
|
||||
@ -669,7 +682,9 @@ class PitchingCardRatings(BaseModel):
|
||||
|
||||
|
||||
pcr_index = ModelIndex(
|
||||
PitchingCardRatings, (PitchingCardRatings.pitchingcard, PitchingCardRatings.vs_hand), unique=True
|
||||
PitchingCardRatings,
|
||||
(PitchingCardRatings.pitchingcard, PitchingCardRatings.vs_hand),
|
||||
unique=True,
|
||||
)
|
||||
PitchingCardRatings.add_index(pcr_index)
|
||||
|
||||
@ -687,12 +702,16 @@ class CardPosition(BaseModel):
|
||||
|
||||
|
||||
pos_index = ModelIndex(
|
||||
CardPosition, (CardPosition.player, CardPosition.variant, CardPosition.position), unique=True
|
||||
CardPosition,
|
||||
(CardPosition.player, CardPosition.variant, CardPosition.position),
|
||||
unique=True,
|
||||
)
|
||||
CardPosition.add_index(pos_index)
|
||||
|
||||
|
||||
db.create_tables([BattingCard, BattingCardRatings, PitchingCard, PitchingCardRatings, CardPosition])
|
||||
db.create_tables(
|
||||
[BattingCard, BattingCardRatings, PitchingCard, PitchingCardRatings, CardPosition]
|
||||
)
|
||||
|
||||
|
||||
db.close()
|
||||
@ -870,4 +889,3 @@ db.close()
|
||||
#
|
||||
#
|
||||
# scout_db.close()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user