Tenho 2 bancos de dados já restaurados em 2 bancos de dados diferentes na mesma instância, chamo-o geo
e restore1
o esquema é idêntico, a única diferença é que geo
o banco de dados contém apenas registros antes de <= 2023-11-23
e depois de >= 2023-12-01
, enquanto restore1
contém <= 2023-11-30
, como posso copiá-los valores ausentes ( 2023-11-23
até 2023-11-30
o banco restore1
de geo
dados) para cada tabela facilmente?
uma maneira que eu poderia pensar é criar um programa, para cada tabela, selecionando o último id antes 2023-11-24
de geo
(chamá-lo X
), em seguida, selecionar todos os registros com id maior que X
e, em seguida, inseri-lo manualmente no geo
banco de dados.
Existe alguma maneira mais simples?
existem centenas de tabelas, mas a maioria delas é algo assim:
restore1=# \d station_logs_599
Table "public.station_logs_599"
Column | Type | Collation | Nullable | Default
------------------------+--------------------------------+-----------+----------+------------------------------------------
id | integer | | not null | nextval('station_logs_id_seq'::regclass)
created_at | timestamp(6) without time zone | | |
updated_at | timestamp(6) without time zone | | |
deleted_at | timestamp(6) without time zone | | |
submitted_at | timestamp(6) without time zone | | not null |
sequence | integer | | |
level_sensor | double precision | | |
accel_x | double precision | | |
accel_y | double precision | | |
accel_z | double precision | | |
power_current | double precision | | |
ip_address | character varying(50) | | |
log_type | integer | | |
station_id | integer | | not null |
power_voltage | double precision | | |
data | jsonb | | |
is_deleted | boolean | | not null | false
temperature | double precision | | |
wind_speed | double precision | | |
soil_moisture | double precision | | |
wind_direction | double precision | | |
raindrop | double precision | | |
humidity | integer | | |
barometric_pressure | double precision | | |
wind_speed_average | double precision | | |
wind_gust | double precision | | |
wind_direction_average | double precision | | |
rain_rate | double precision | | |
Indexes:
"station_logs_599_epoch" btree (date_part('epoch'::text, submitted_at))
"station_logs_599_submitted_at" btree (submitted_at)
"uniq_sid_sat_599" UNIQUE CONSTRAINT, btree (submitted_at)
Foreign-key constraints:
"station_logs_599_station_fk" FOREIGN KEY (station_id) REFERENCES stations(id)
Eu uso golang para resolver isso:
tl;dw
:DATE(submitted_at), COUNT(1)
)