remove location table
This commit is contained in:
parent
ae891a58f4
commit
5e8ccc6be1
@ -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)
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user