feat: add PostgreSQL + pgvector graph database backend #966
+1,037
−24
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add a new PostgreSQL + pgvector backend for the graph database layer. This provides a lightweight alternative to Neo4j that uses standard PostgreSQL with the pgvector extension for vector similarity search.
Key Features
remove_oldest_memory,get_grouped_counts)Files Changed
src/memos/graph_dbs/postgres.py- New PostgresGraphDB implementation (~885 lines)src/memos/configs/graph_db.py- Added PostgresGraphDBConfigsrc/memos/graph_dbs/factory.py- Registered postgres backendConfiguration Example
```yaml
graph_db:
backend: postgres
config:
host: postgres
port: 5432
user: memos
password: secret
db_name: memos
schema_name: memos
user_name: default
embedding_dimension: 768
```
Why PostgreSQL?
Test Plan