add database and schemas
This commit is contained in:
38
src/logic/database.py
Normal file
38
src/logic/database.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import sqlite3
|
||||
import os
|
||||
from src import config
|
||||
from pathlib import Path
|
||||
from src.logic import USERS, MEDIA, LOANS
|
||||
class Database:
|
||||
def __init__(self) -> None:
|
||||
self.db_name = config.database.name
|
||||
self.db_location = config.database.path
|
||||
self.db_path = Path(self.db_location).joinpath(self.db_name)
|
||||
print(self.db_path)
|
||||
self.backup_path = config.database.backupLocation
|
||||
try:
|
||||
self.connection = sqlite3.connect(self.db_path)
|
||||
except sqlite3.OperationalError as e:
|
||||
print(e)
|
||||
self.createDatabase()
|
||||
pass
|
||||
|
||||
def createDatabase(self):
|
||||
print("Creating Database")
|
||||
if not os.path.exists(self.db_location):
|
||||
os.makedirs(self.db_location)
|
||||
self.connection = sqlite3.connect(self.db_path)
|
||||
self.cursor = self.connection.cursor()
|
||||
self.cursor.execute(USERS)
|
||||
self.cursor.execute(MEDIA)
|
||||
self.cursor.execute(LOANS)
|
||||
self.connection.commit()
|
||||
def tableCheck(self):
|
||||
pass
|
||||
|
||||
def test(self):
|
||||
print("Test")
|
||||
def checkUserExists(self, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
25
src/logic/db_schemas.py
Normal file
25
src/logic/db_schemas.py
Normal file
@@ -0,0 +1,25 @@
|
||||
USERS = """
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INTEGER PRIMARY KEY,
|
||||
username TEXT NOT NULL,
|
||||
usermain TEXT NOT NULL
|
||||
""" #id == matrikelnr,
|
||||
MEDIA = """
|
||||
CREATE TABLE IF NOT EXISTS media (
|
||||
id AUTOINCREMENT PRIMARY KEY,
|
||||
signature TEXT NOT NULL,
|
||||
isbn TEXT NOT NULL,
|
||||
ppn TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
"""
|
||||
|
||||
LOANS = """
|
||||
CREATE TABLE IF NOT EXISTS loans (
|
||||
id AUTOINCREMENT PRIMARY KEY,
|
||||
user_id INTEGER NOT NULL,
|
||||
media_id INTEGER NOT NULL,
|
||||
loan_date TEXT NOT NULL,
|
||||
return_date TEXT NOT NULL,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id),
|
||||
FOREIGN KEY (media_id) REFERENCES media(id)
|
||||
"""
|
||||
Reference in New Issue
Block a user