Files
push-edf/CLAUDE.md

39 lines
1.4 KiB
Markdown
Raw Normal View History

this project is a tool CLI that can take CSV file and push its content into a sqlite database.
the CSV files have the following columns:
- Date de relevé de l'index
- Type d'index
- Index Heures pleines (kWh)
- Index Heures creuses (kWh)
the sqlite database has been created with the following command:
CREATE TABLE "electricite" (
"date" TEXT NOT NULL UNIQUE,
"releveHC" INTEGER NOT NULL,
"releveHP" INTEGER NOT NULL,
"comment" TEXT,
PRIMARY KEY("date")
)
CSV column "Date de relevé de l'index" has to be mapped with database column "date"
CSV column "Index Heures pleines (kWh)" has to be mapped with database column "releveHP"
CSV column "Index Heures creuses (kWh)" has to be mapped with database column "releveHC"
the CLI takes 2 parameters:
- first is the name of the CSV file
- second is the JDBC URL (for example, "jdbc:sqlite:/Users/kriss/NextCloud/Kriss/Dev/Perso/conso/db/conso.db")
when launched, the tool checks that:
- CSV file exists on the disk
- CSV file contains exactly the described columns
- Sqlite database is accessible through the JDBC URL
- Ensure there won't be any duplicates inserted in the database (which means if the tool is launched twice in a row, no new lines will be inserted)
- Tell the user how many new lines are going to be inserted in the database, and ask his agreement before proceeding
- Performs the insert in the database
this project is written in Rust.