mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
fix: create search_vector_chunks in test fixtures for Postgres compatibility
Embedding status tests were creating search_vector_chunks inline using SQLite-only DDL (AUTOINCREMENT). Added Postgres DDL constants to models/search.py and wired them into the test fixture so both backends create the table at setup time — matching what the Alembic migration does in production. Also fixed stub search_vector_embeddings to use chunk_id (Postgres column name) instead of rowid, and added inter-test cleanup to prevent ordering-dependent failures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: phernandez <paul@basicmachines.co>
This commit is contained in:
@@ -93,6 +93,27 @@ CREATE VIRTUAL TABLE IF NOT EXISTS search_index USING fts5(
|
||||
);
|
||||
""")
|
||||
|
||||
# Postgres semantic chunk metadata table.
|
||||
# Matches the Alembic migration (h1b2c3d4e5f6) schema.
|
||||
# Used by tests to create the table without running full migrations.
|
||||
CREATE_POSTGRES_SEARCH_VECTOR_CHUNKS_TABLE = DDL("""
|
||||
CREATE TABLE IF NOT EXISTS search_vector_chunks (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
entity_id INTEGER NOT NULL,
|
||||
project_id INTEGER NOT NULL,
|
||||
chunk_key TEXT NOT NULL,
|
||||
chunk_text TEXT NOT NULL,
|
||||
source_hash TEXT NOT NULL,
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
UNIQUE (project_id, entity_id, chunk_key)
|
||||
)
|
||||
""")
|
||||
|
||||
CREATE_POSTGRES_SEARCH_VECTOR_CHUNKS_INDEX = DDL("""
|
||||
CREATE INDEX IF NOT EXISTS idx_search_vector_chunks_project_entity
|
||||
ON search_vector_chunks (project_id, entity_id)
|
||||
""")
|
||||
|
||||
# Local semantic chunk metadata table for SQLite.
|
||||
# Embedding vectors live in sqlite-vec virtual table keyed by this table rowid.
|
||||
CREATE_SQLITE_SEARCH_VECTOR_CHUNKS = DDL("""
|
||||
|
||||
Reference in New Issue
Block a user