From dfbcffc37ec1923d89b65e56fe1c6a6ccf0d1a57 Mon Sep 17 00:00:00 2001 From: gdvcamargo Date: Thu, 19 Dec 2024 21:05:26 -0300 Subject: [PATCH] Update dump script --- server/scripts/dumps/classroom.csv | 2 +- server/scripts/dumps/load_csv.py | 66 +++++++++++++++++------------- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/server/scripts/dumps/classroom.csv b/server/scripts/dumps/classroom.csv index ef4cb97..202f66c 100644 --- a/server/scripts/dumps/classroom.csv +++ b/server/scripts/dumps/classroom.csv @@ -1,4 +1,4 @@ -name, capacity, floor, ignore_to_allocate, accessibility, projector, air_conditioning, updated_at, created_by_id, building_id, id +name,capacity,floor,ignore_to_allocate,accessibility,projector,air_conditioning,updated_at,created_by_id,building_id,id CT-04,75,0,f,t,t,t,2024-07-31 22:04:12.455258,5,1,1 C1-04,85,1,f,f,t,t,2024-07-31 22:04:12.455258,5,1,3 C1-05,85,1,f,f,t,t,2024-07-31 22:04:12.455258,5,1,4 diff --git a/server/scripts/dumps/load_csv.py b/server/scripts/dumps/load_csv.py index 1d77a08..8a47127 100644 --- a/server/scripts/dumps/load_csv.py +++ b/server/scripts/dumps/load_csv.py @@ -31,53 +31,61 @@ # Cria o engine de conexão com o banco de dados engine = create_engine(f"{CONFIG.db_uri}/{CONFIG.db_database}") + # Função para ler o CSV e salvar no banco de dados def load_csv_to_db(csv_file: str) -> None: try: - with open(csv_file, mode='r', encoding='utf-8') as file: + with open(csv_file, encoding="utf-8") as file: # Lê os dados do CSV reader = csv.DictReader(file) # Leitor com cabeçalho do CSV - + with Session(engine) as session: for row in reader: - # Cria a instância da entidade Building - building = building_db_model.Building( - id=row['id'], # type: ignore - name=row['name'], - created_by_id=row['created_by_id'], # type: ignore - updated_at=row['updated_at'] # type: ignore - ) - - # Adiciona o Building ao banco de dados - session.add(building) - + # # Cria a instância da entidade Building + # building = building_db_model.Building( + # id=row['id'], # type: ignore + # name=row['name'], + # created_by_id=1, # type: ignore + # updated_at=row['updated_at'] # type: ignore + # ) + + # # Adiciona o Building ao banco de dados + # session.add(building) + # Caso você tenha uma tabela Classroom também no CSV - if 'classroom_id' in row: + if True: classroom = classroom_db_model.Classroom( - name=row['classroom_name'], # type: ignore - capacity=row['capacity'], # type: ignore - floor=row['floor'], # type: ignore - ignore_to_allocate=row['ignore_to_allocate'], # type: ignore - accessibility=row['accessibility'], # type: ignore - projector=row['projector'], # type: ignore - air_conditioning=row['air_conditioning'], # type: ignore - updated_at=row['updated_at'], # type: ignore - created_by_id=3, # type: ignore - building_id=row['building_id'], # type: ignore - id=row['id'], # type: ignore + name=row["name"], # type: ignore + capacity=row["capacity"], # type: ignore + floor=row["floor"], # type: ignore + ignore_to_allocate=True + if row["ignore_to_allocate"] == "t" + else False, # type: ignore + accessibility=True + if row["accessibility"] == "t" + else False, # type: ignore + projector=True if row["projector"] == "t" else False, # type: ignore + air_conditioning=True + if row["air_conditioning"] == "t" + else False, # type: ignore + updated_at=row["updated_at"], # type: ignore + created_by_id=1, # type: ignore + building_id=row["building_id"], # type: ignore + id=row["id"], # type: ignore ) session.add(classroom) - + # Commit para salvar todas as instâncias no banco session.commit() - + print("Dados carregados com sucesso no banco de dados!") - + except Exception as e: print(f"Erro ao carregar os dados do CSV: {e}") + # Caminho para o arquivo CSV -csv_file = 'buildings.csv' +csv_file = "classroom.csv" # Chama a função para carregar os dados load_csv_to_db(csv_file)