feat: add import execution api
This commit is contained in:
30
apps/api/migrations/202606240002_import_execution.sql
Normal file
30
apps/api/migrations/202606240002_import_execution.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
CREATE TABLE IF NOT EXISTS raw.import_rows (
|
||||
import_row_id BIGSERIAL PRIMARY KEY,
|
||||
run_id BIGINT NOT NULL REFERENCES audit.ingestion_runs(run_id),
|
||||
raw_artifact_id BIGINT NOT NULL REFERENCES audit.raw_artifacts(artifact_id),
|
||||
template_name TEXT NOT NULL,
|
||||
target_table TEXT NOT NULL,
|
||||
row_number INTEGER NOT NULL CHECK (row_number >= 2),
|
||||
payload JSONB NOT NULL,
|
||||
imported_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
UNIQUE (run_id, template_name, row_number)
|
||||
);
|
||||
|
||||
ALTER TABLE silver.area_monthly_metrics
|
||||
ADD COLUMN IF NOT EXISTS ingestion_run_id BIGINT REFERENCES audit.ingestion_runs(run_id),
|
||||
ADD COLUMN IF NOT EXISTS raw_artifact_id BIGINT REFERENCES audit.raw_artifacts(artifact_id);
|
||||
|
||||
ALTER TABLE silver.neighborhood_monthly_metrics
|
||||
ADD COLUMN IF NOT EXISTS ingestion_run_id BIGINT REFERENCES audit.ingestion_runs(run_id),
|
||||
ADD COLUMN IF NOT EXISTS raw_artifact_id BIGINT REFERENCES audit.raw_artifacts(artifact_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_import_rows_run_id
|
||||
ON raw.import_rows(run_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_import_rows_raw_artifact_id
|
||||
ON raw.import_rows(raw_artifact_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_import_rows_template_name
|
||||
ON raw.import_rows(template_name, imported_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_area_metrics_ingestion_run
|
||||
ON silver.area_monthly_metrics(ingestion_run_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_neighborhood_metrics_ingestion_run
|
||||
ON silver.neighborhood_monthly_metrics(ingestion_run_id);
|
||||
Reference in New Issue
Block a user