Files
PVHBackend/db/InitializeDB.py
T

79 lines
1.9 KiB
Python

import sqlite3
from loguru import logger as log
def init_database():
conn = sqlite3.connect('products.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS Product (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
image_path TEXT
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Param (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
val TEXT NOT NULL
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Val (
id INTEGER PRIMARY KEY AUTOINCREMENT,
val TEXT NOT NULL
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS CParams (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Category (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
image_path TEXT
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Product_Param (
product_id INTEGER,
param_id INTEGER,
PRIMARY KEY (product_id, param_id),
FOREIGN KEY (product_id) REFERENCES Product (id),
FOREIGN KEY (param_id) REFERENCES Param (id)
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Category_CParams (
category_id INTEGER,
cparams_id INTEGER,
PRIMARY KEY (category_id, cparams_id),
FOREIGN KEY (category_id) REFERENCES Category (id),
FOREIGN KEY (cparams_id) REFERENCES CParams (id)
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS CParams_Val (
cparams_id INTEGER,
val_id INTEGER,
PRIMARY KEY (cparams_id, val_id),
FOREIGN KEY (cparams_id) REFERENCES CParams (id),
FOREIGN KEY (val_id) REFERENCES Val (id)
)
''')
conn.commit()
conn.close()
log.info("База данных успешно инициализирована!")