Files
silk/server-go/migrations/000006_biosecurity.up.sql
T
2026-08-14 08:39:56 +08:00

65 lines
2.4 KiB
SQL

CREATE TABLE IF NOT EXISTS seed_sources (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
public_id varchar(64) NOT NULL,
batch_id uuid,
parent_id uuid,
supplier varchar(128) NOT NULL,
seed_batch_no varchar(64) NOT NULL,
quarantine_no varchar(64),
variety varchar(64),
certificate_url varchar(512),
entry_at timestamptz,
note text,
created_by uuid,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_seed_sources_public_id ON seed_sources (public_id);
CREATE INDEX IF NOT EXISTS idx_seed_sources_batch_id ON seed_sources (batch_id);
CREATE INDEX IF NOT EXISTS idx_seed_sources_parent_id ON seed_sources (parent_id);
CREATE TABLE IF NOT EXISTS disinfection_records (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
room_id uuid,
batch_id uuid,
kind varchar(16) NOT NULL DEFAULT 'plan',
plan_id uuid,
agent varchar(128) NOT NULL,
concentration varchar(64) NOT NULL,
amount varchar(64),
planned_at timestamptz,
executed_at timestamptz,
executor_id uuid,
reviewed_at timestamptz,
reviewer_id uuid,
photo_url varchar(512),
note text,
created_by uuid,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_disinfection_records_room_id ON disinfection_records (room_id);
CREATE INDEX IF NOT EXISTS idx_disinfection_records_batch_id ON disinfection_records (batch_id);
CREATE INDEX IF NOT EXISTS idx_disinfection_records_plan_id ON disinfection_records (plan_id);
CREATE TABLE IF NOT EXISTS identity_links (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
public_id varchar(64) NOT NULL,
entity_type varchar(16) NOT NULL,
entity_id varchar(128) NOT NULL,
version integer NOT NULL DEFAULT 1,
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now()
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_links_public_id ON identity_links (public_id);
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_links_entity ON identity_links (entity_type, entity_id);
CREATE INDEX IF NOT EXISTS idx_identity_links_entity_type ON identity_links (entity_type);
ALTER TABLE batches
ADD COLUMN IF NOT EXISTS seed_source_id uuid;
CREATE INDEX IF NOT EXISTS idx_batches_seed_source_id ON batches (seed_source_id);