Files
PVHBackend/db/InitializeDBData.py
T

71 lines
5.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import sqlite3
from loguru import logger as log
from db.DBDataUtils import add_category, add_filter, add_product, parse_product_data
from db.InitializeDB import init_database
def init_tables(db_name='pipe_store.db'):
init_database(db_name)
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM categories')
category_count = cursor.fetchone()[0]
if category_count > 0:
log.info("Данные уже существуют в базе данных, пропускаем добавление")
conn.close()
return
log.info("Начинаем заполнение базы данных...")
main_category_id = add_category(conn, "Трубы ПВХ", "Трубы ПВХ для канализации")
internal_category_id = add_category(conn, "Для внутренней канализации", "Трубы для внутренней канализации", main_category_id)
external_category_id = add_category(conn, "Для наружной канализации", "Трубы для наружной канализации", main_category_id)
log.info("Категории созданы успешно")
add_filter(conn, "Диаметр", "diameter", "multiple")
add_filter(conn, "Длина", "length", "multiple")
add_filter(conn, "Тип применения", "application_type", "single")
add_filter(conn, "Цвет", "color", "single")
add_filter(conn, "Класс жесткости", "stiffness_class", "single")
add_filter(conn, "Толщина стенки", "wall_thickness", "multiple")
log.info("Фильтры добавлены успешно")
products_data = [
"Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), со сплошной внутренней стенкой толщиной 2,2 мм 110х2,2х500",
"Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), со сплошной внутренней стенкой толщиной 2,2 мм 110х2,2х1000",
"Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), со сплошной внутренней стенкой толщиной 2,2 мм 110х2,2х1500",
"Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), со сплошной внутренней стенкой толщиной 2,2 мм 110х2,2х2000",
"Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), со сплошной внутренней стенкой толщиной 2,2 мм 110х2,2х3000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN4 110х3,2х500",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN4 110х3,2х1000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN4 110х3,2х2000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN4 110х3,2х3000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN4 110х3,2х4000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN2 160х3,6х1000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN2 160х3,6х2000",
"Труба ПВХ для НАРУЖНОЙ канализации (цвет коричнево-оранжевый), со сплошной внутренней стенкой, класс жесткости SN2 160х3,6х3000"
]
added_products = 0
for product_text in products_data:
if "ВНУТРЕННЕЙ" in product_text:
category_id = internal_category_id
else:
category_id = external_category_id
product_id = add_product(conn, product_text, category_id)
if product_id:
added_products += 1
log.info(f"Добавлен товар: {product_text[:50]}...")
else:
log.error(f"Ошибка при добавлении товара: {product_text}")
conn.commit()
conn.close()
log.success(f"Успешно добавлено {added_products} товаров в базу данных!")