Skip to content

Commit

Permalink
Update dump script
Browse files Browse the repository at this point in the history
  • Loading branch information
gdvcamargo committed Dec 20, 2024
1 parent fdcf18e commit dfbcffc
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 30 deletions.
2 changes: 1 addition & 1 deletion server/scripts/dumps/classroom.csv
Original file line number Diff line number Diff line change
@@ -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
Expand Down
66 changes: 37 additions & 29 deletions server/scripts/dumps/load_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)

0 comments on commit dfbcffc

Please sign in to comment.