Skip to content

Commit

Permalink
Fix DB migrations
Browse files Browse the repository at this point in the history
  • Loading branch information
inahga committed Jan 22, 2024
1 parent aa2c23e commit 86e70e2
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 22 deletions.
2 changes: 1 addition & 1 deletion aggregator_core/src/datastore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ macro_rules! supported_schema_versions {
// version is seen, [`Datastore::new`] fails.
//
// Note that the latest supported version must be first in the list.
supported_schema_versions!(1);
supported_schema_versions!(2);

/// Datastore represents a datastore for Janus, with support for transactional reads and writes.
/// In practice, Datastore instances are currently backed by a PostgreSQL database.
Expand Down
1 change: 0 additions & 1 deletion db/00000000000001_initial_schema.down.sql
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ DROP INDEX client_reports_task_and_timestamp_unaggregated_index CASCADE;
DROP TABLE client_reports CASCADE;
DROP TABLE task_hpke_keys CASCADE;
DROP INDEX task_id_index CASCADE;
DROP TABLE task_upload_counters CASCADE;
DROP TABLE tasks CASCADE;
DROP TABLE taskprov_aggregator_auth_tokens;
DROP TABLE taskprov_collector_auth_tokens;
Expand Down
20 changes: 0 additions & 20 deletions db/00000000000001_initial_schema.up.sql
Original file line number Diff line number Diff line change
Expand Up @@ -133,26 +133,6 @@ CREATE TABLE tasks(
);
CREATE INDEX task_id_index ON tasks(task_id);

-- Per task report upload counters.
CREATE TABLE task_upload_counters(
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- artificial ID, internal-only
task_id BIGINT NOT NULL,

interval_collected BIGINT NOT NULL DEFAULT 0, -- Reports submitted for an interval that was already collected.
report_decode_failure BIGINT NOT NULL DEFAULT 0, -- Reports which failed to decode.
report_decrypt_failure BIGINT NOT NULL DEFAULT 0, -- Reports which failed to decrypt.
report_expired BIGINT NOT NULL DEFAULT 0, -- Reports that were older than the task's report_expiry_age.
report_outdated_key BIGINT NOT NULL DEFAULT 0, -- Reports that were encrypted with an unknown or outdated HPKE key.
report_success BIGINT NOT NULL DEFAULT 0, -- Reports that were successfully uploaded.
report_too_early BIGINT NOT NULL DEFAULT 0, -- Reports whose timestamp is too far in the future.
task_expired BIGINT NOT NULL DEFAULT 0, -- Reports sent to the task while it is expired.

ord BIGINT NOT NULL, -- Index of this task_upload_counters shard.

CONSTRAINT fk_task_id FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE,
CONSTRAINT task_upload_counters_unique UNIQUE(task_id, ord)
);

-- The HPKE public keys (aka configs) and private keys used by a given task.
CREATE TABLE task_hpke_keys(
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- artificial ID, internal-only
Expand Down
1 change: 1 addition & 0 deletions db/00000000000002_task_upload_counters.down.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DROP TABLE task_upload_counters;
19 changes: 19 additions & 0 deletions db/00000000000002_task_upload_counters.up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-- Per task report upload counters.
CREATE TABLE task_upload_counters(
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- artificial ID, internal-only
task_id BIGINT NOT NULL,

interval_collected BIGINT NOT NULL DEFAULT 0, -- Reports submitted for an interval that was already collected.
report_decode_failure BIGINT NOT NULL DEFAULT 0, -- Reports which failed to decode.
report_decrypt_failure BIGINT NOT NULL DEFAULT 0, -- Reports which failed to decrypt.
report_expired BIGINT NOT NULL DEFAULT 0, -- Reports that were older than the task's report_expiry_age.
report_outdated_key BIGINT NOT NULL DEFAULT 0, -- Reports that were encrypted with an unknown or outdated HPKE key.
report_success BIGINT NOT NULL DEFAULT 0, -- Reports that were successfully uploaded.
report_too_early BIGINT NOT NULL DEFAULT 0, -- Reports whose timestamp is too far in the future.
task_expired BIGINT NOT NULL DEFAULT 0, -- Reports sent to the task while it is expired.

ord BIGINT NOT NULL, -- Index of this task_upload_counters shard.

CONSTRAINT fk_task_id FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE,
CONSTRAINT task_upload_counters_unique UNIQUE(task_id, ord)
);

0 comments on commit 86e70e2

Please sign in to comment.