70_add_embeddings.up.sql 790 B

12345678910111213141516171819202122232425
  1. CREATE TYPE model AS ENUM ('ggml-clip');
  2. CREATE TABLE IF NOT EXISTS embeddings(
  3. file_id BIGINT NOT NULL,
  4. owner_id BIGINT NOT NULL,
  5. model model NOT NULL,
  6. encrypted_embedding TEXT NOT NULL,
  7. decryption_header TEXT NOT NULL,
  8. updated_at BIGINT NOT NULL DEFAULT now_utc_micro_seconds(),
  9. CONSTRAINT unique_embeddings_file_id_model
  10. UNIQUE (file_id, model),
  11. CONSTRAINT fk_embeddings_file_id
  12. FOREIGN KEY (file_id)
  13. REFERENCES files (file_id)
  14. ON DELETE CASCADE
  15. );
  16. CREATE INDEX IF NOT EXISTS embeddings_owner_id_updated_at_index ON embeddings (owner_id, updated_at);
  17. CREATE TRIGGER update_embeddings_updated_at
  18. BEFORE UPDATE
  19. ON embeddings
  20. FOR EACH ROW
  21. EXECUTE PROCEDURE
  22. trigger_updated_at_microseconds_column();