fix: check for id in simple_insert_one() to avoid breaking autoincrement

This commit is contained in:
2025-06-03 21:46:59 +02:00
parent 206f7d6fb3
commit bdfa31c8ea

View File

@@ -10,6 +10,18 @@ import traceback
global db
class c:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
ENDL = '\n'
class baza():
# global sportowcy, trofea, sportowcy_w_meczach, statystyki_sportowcow, kluby, mecze
@@ -168,9 +180,9 @@ class baza():
try:
return_val = func(self, *args, **kwargs)
except:
print( "\033[91m"
print(f"{c.FAIL}"
f"Wystąpił błąd podczas wykonywania zapytania SQL:"
"\033[0m"
f"{c.ENDC}"
"\n"
f"{traceback.format_exc()}")
self.session.rollback()
@@ -263,6 +275,14 @@ class baza():
if not isinstance(entity_type, str):
entity_type = entity_type.__name__
if "id" in kwargs:
print(f"{c.FAIL}UWAGA!{c.ENDC}")
print(f"Próbujesz dodać obiekt do tabeli, który ma już identyfikator.\n"
f"To spowoduje problemy w przyszłości, gdy będziesz chciał dodać nowy obiekt do bazy bez ustawiania id na sztywno\n"
f"(id klucza głównego nie zostanie zaktualizowane w sekwencji, przez co baza będzie próbowała dodać obiekt z id już istniejącego rekordu!).\n"
f"Aby naprawić dodawanie z autoinkrementującym kluczem zobacz {c.WARNING}https://stackoverflow.com/a/8745101{c.ENDC}\n"
f"Zostałeś ostrzeżony!")
print(f"[{round(time.time())}] INSERT")
obj = self.entities[entity_type](**kwargs)