Files
k-photos/crates/adapters/postgres/migrations/004_catalog.sql

24 lines
890 B
SQL

CREATE TABLE assets (
asset_id UUID PRIMARY KEY,
volume_id UUID NOT NULL REFERENCES storage_volumes(volume_id),
relative_path TEXT NOT NULL,
checksum TEXT NOT NULL,
asset_type TEXT NOT NULL,
mime_type TEXT NOT NULL,
file_size BIGINT NOT NULL,
is_processed BOOLEAN NOT NULL DEFAULT false,
owner_user_id UUID NOT NULL REFERENCES users(id),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_assets_checksum ON assets(checksum);
CREATE INDEX idx_assets_owner ON assets(owner_user_id);
CREATE TABLE asset_metadata (
asset_id UUID NOT NULL REFERENCES assets(asset_id) ON DELETE CASCADE,
metadata_source TEXT NOT NULL,
data JSONB NOT NULL DEFAULT '{}',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (asset_id, metadata_source)
);