remove location table

This commit is contained in:
Pedro Pérez 2025-10-23 17:07:53 +02:00
parent ae891a58f4
commit 5e8ccc6be1
2 changed files with 5 additions and 13 deletions

View File

@ -23,11 +23,9 @@ func NewPGXRepo(pool *pgxpool.Pool) Repository {
} }
} }
const insertAcceptedMeteoData = `insert into public.meteo_data (location_id, max_temp, min_temp, rainfall, cloudiness, created_at) values ($1, $2, $3, $4, $5, $6) returning id` const insertAcceptedMeteoData = `insert into public.meteo_data (location_name, max_temp, min_temp, rainfall, cloudiness, created_at) values ($1, $2, $3, $4, $5, $6) returning id`
func (pgx *pgxRepo) InsertAcceptedMeteoData(ctx context.Context, data []MeteoData) (int, error) { func (pgx *pgxRepo) InsertAcceptedMeteoData(ctx context.Context, data []MeteoData) (int, error) {
// TODO pass context
// TODO improve transaction
tx, err := pgx.Begin(ctx) tx, err := pgx.Begin(ctx)
if err != nil { if err != nil {
return 0, fmt.Errorf("error starting transaction: %w", err) return 0, fmt.Errorf("error starting transaction: %w", err)
@ -37,8 +35,7 @@ func (pgx *pgxRepo) InsertAcceptedMeteoData(ctx context.Context, data []MeteoDat
batch := &b.Batch{} batch := &b.Batch{}
for _, d := range data { for _, d := range data {
// TODO get city id before insert! batch.Queue(insertAcceptedMeteoData, d.Location, d.MaxTemp, d.MinTemp, d.Rainfall, d.Cloudiness, d.Timestamp)
batch.Queue(insertAcceptedMeteoData, 1, d.MaxTemp, d.MinTemp, d.Rainfall, d.Cloudiness, d.Timestamp)
} }
results := tx.SendBatch(ctx, batch) results := tx.SendBatch(ctx, batch)

View File

@ -1,15 +1,8 @@
create table public.locations
(
id serial primary key,
location_name varchar(255) not null unique
);
create table public.meteo_data create table public.meteo_data
( (
id serial primary key, id serial primary key,
location_id int not null references public.locations (id), location_name citext not null,
max_temp float not null, max_temp float not null,
min_temp float not null, min_temp float not null,
rainfall float not null, rainfall float not null,
@ -18,6 +11,8 @@ create table public.meteo_data
created_at timestamp not null default now() created_at timestamp not null default now()
); );
create index idx_meteo_data_location_name on public.meteo_data (location_name);
create table public.rejected_data create table public.rejected_data
( (
id serial primary key, id serial primary key,