Ctrl K
ComunidadGuías…

migrations/004_document_sections.sql

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
CREATE TABLE IF NOT EXISTS document_sections (
  id BIGSERIAL PRIMARY KEY,
  document_id BIGINT NOT NULL REFERENCES documents(id) ON DELETE CASCADE,
  section_index INTEGER NOT NULL,
  title TEXT NOT NULL,
  content TEXT NOT NULL,
  preview TEXT NOT NULL,
  start_offset INTEGER NOT NULL,
  end_offset INTEGER NOT NULL,
  section_type TEXT NOT NULL DEFAULT 'generic',
  metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
  page_start INTEGER,
  page_end INTEGER,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  UNIQUE (document_id, section_index)
);

CREATE INDEX IF NOT EXISTS idx_document_sections_document_id ON document_sections (document_id);
CREATE INDEX IF NOT EXISTS idx_document_sections_section_type ON document_sections (section_type);

ALTER TABLE document_chunks
  ADD COLUMN IF NOT EXISTS document_section_id BIGINT REFERENCES document_sections(id) ON DELETE SET NULL;

ALTER TABLE document_chunks
  ADD COLUMN IF NOT EXISTS start_offset INTEGER;

ALTER TABLE document_chunks
  ADD COLUMN IF NOT EXISTS end_offset INTEGER;

CREATE INDEX IF NOT EXISTS idx_document_chunks_document_section_id ON document_chunks (document_section_id);