Assessor_2.0/server/postgres/migrations/002_import_fingerprints.sql

14 lines
612 B
SQL

CREATE TABLE assessor_import_fingerprints (
sha256 text PRIMARY KEY CHECK (sha256 ~ '^[a-f0-9]{64}$'),
file_name text NOT NULL CHECK (btrim(file_name) <> ''),
size_bytes bigint NOT NULL CHECK (size_bytes >= 0),
last_modified bigint NOT NULL CHECK (last_modified >= 0),
first_imported_at timestamptz NOT NULL,
last_imported_at timestamptz NOT NULL,
import_count integer NOT NULL DEFAULT 1 CHECK (import_count >= 1),
data jsonb NOT NULL CHECK (jsonb_typeof(data) = 'object')
);
CREATE INDEX assessor_import_fingerprints_last_imported_idx
ON assessor_import_fingerprints (last_imported_at DESC);