Added: Full Postgres Support

This commit is contained in:
DerGrumpf 2025-03-10 11:34:34 +01:00
parent a14dd8553b
commit 6a23a47ed2
4 changed files with 36 additions and 9 deletions

View File

@ -1,6 +1,7 @@
import pandas as pd
import pprint
import sys
import sys
import getpass
sys.path.append('../learnlytics/')
from dbmodel import *
@ -32,7 +33,9 @@ groups = {
print(df)
#init_db('WiSe_24_25.db')
init_postgres('postgresql://admin:admin@100.96.135.91/learnlytics')
name = getpass.getuser()
create_database(name)
init_postgres(name, 'postgres.cyperpunk.de', 'dergrumpf', '1P2h3i4lon$%', 5432)
db.drop_tables(tables)
db.create_tables(tables)
# Create Class

View File

@ -3,6 +3,7 @@ from .utils import (
table_labels,
init_local,
init_postgres,
create_database,
save_as_json,
create_from_json
)

View File

@ -11,10 +11,13 @@ Includes:
import sys, inspect, json
from datetime import datetime, date
from pathlib import Path
from peewee import *
from playhouse.shortcuts import model_to_dict, dict_to_model
from playhouse.db_url import connect
from .model import *
import psycopg2
from psycopg2 import sql
class DateTimeEncoder(json.JSONEncoder):
'''
Helper Class converting datetime.datetime -> isoformated String
@ -79,11 +82,28 @@ def init_local(name: Path | str) -> None:
db.create_tables(tables) # Ensure tables exist
def init_postgres(url: str) -> None:
def create_database(name: str) -> None:
config = {
'user': 'dergrumpf',
'password': '1P2h3i4lon$%',
'host': 'postgres.cyperpunk.de',
'port': 5432,
'dbname': 'postgres'
}
con = psycopg2.connect(**config)
con.autocommit = True
cur = con.cursor()
query = sql.SQL(f'CREATE DATABASE {name}')
try:
cur.execute(query)
except psycopg2.errors.DuplicateDatabase:
pass
assert isinstance(url, str), "Provided url isnt a String"
con.close()
database = connect(url)
def init_postgres(name: str, host: str, user: str, password: str, port: int = 5432) -> None:
database = PostgresqlDatabase(name, host=host, port=port, user=user, password=password)
db.initialize(database)
db.connect()
db.create_tables(tables)

View File

@ -10,7 +10,8 @@ from gui import (
status_bar
)
from dbmodel import init_postgres
from dbmodel import init_postgres, create_database, init_local
import getpass
from pathlib import Path
def main() -> None:
@ -24,8 +25,10 @@ def main() -> None:
file = str(Path.home() / "learnlytics.db")
with open("./pickles/database_location.txt", "w") as f:
f.write(file)
init_postgres('postgres://admin:admin@100.96.135.91:5432/learnlytics')
name = getpass.getuser()
create_database(name)
init_postgres(name, 'postgres.cyperpunk.de', 'dergrumpf', '1P2h3i4lon$%', 5432)
# Set Window Parameters
runner_params = hello_imgui.RunnerParams()