LightRAG/lightrag
BukeLy c89b0ee599 fix: specify conflict target in PostgreSQL ON CONFLICT clause
Why this change is needed:
PostgreSQL requires an explicit conflict target specification when using
ON CONFLICT with tables that have composite primary keys. Without it,
PostgreSQL throws: "ON CONFLICT DO NOTHING requires inference specification
or constraint name". This syntax error occurs during data migration from
legacy tables when users upgrade from older LightRAG versions.

How it solves it:
Changed line 2378 from "ON CONFLICT DO NOTHING" to "ON CONFLICT (workspace, id)
DO NOTHING" to match the table's PRIMARY KEY (workspace, id) constraint.
This aligns with the correct syntax used in all other 12 ON CONFLICT clauses
throughout the codebase (e.g., line 684, 5229, 5236, etc.).

Impact:
- Fixes migration failure in PGVectorStorage.setup_table()
- Prevents syntax errors when migrating data from legacy tables
- Maintains consistency with all other ON CONFLICT usages in postgres_impl.py
- Affects users upgrading from pre-model-suffix table structure

Testing:
Verified by examining:
- All 12 existing ON CONFLICT usages specify (workspace, id)
- All PostgreSQL tables use PRIMARY KEY (workspace, id)
- Migration code at line 684 uses identical correct syntax
2025-11-20 11:47:15 +08:00
..
api Bump API version to 0256 2025-11-18 23:15:31 +08:00
evaluation Update LLM cache migration docs and improve UX prompts 2025-11-08 23:48:19 +08:00
kg fix: specify conflict target in PostgreSQL ON CONFLICT clause 2025-11-20 11:47:15 +08:00
llm Improve Bedrock error handling with retry logic and custom exceptions 2025-11-17 12:54:32 +08:00
tools Improve LightRAG initialization checker tool with better usage docs 2025-11-17 15:42:54 +08:00
__init__.py Bump core version to 1.4.9.9 and API to 0252 2025-11-08 11:27:26 +08:00
base.py style: fix lint issues (trailing whitespace and formatting) 2025-11-20 01:28:39 +08:00
constants.py Refactor entity merging with unified attribute merge function 2025-10-27 00:04:17 +08:00
exceptions.py Auto-initialize pipeline status in LightRAG.initialize_storages() 2025-11-17 12:54:33 +08:00
lightrag.py style: fix lint issues (trailing whitespace and formatting) 2025-11-20 01:28:39 +08:00
namespace.py Add entity/relation chunk tracking with configurable source ID limits 2025-10-20 15:24:15 +08:00
operate.py Adjust chunking parameters to match the default environment variable settings 2025-11-18 23:14:50 +08:00
prompt.py Fix typo in 'equipment' in prompt.py 2025-10-22 11:13:22 +08:00
rerank.py
types.py
utils.py style: fix lint issues (trailing whitespace and formatting) 2025-11-20 01:28:39 +08:00
utils_graph.py Improve entity merge logging by removing redundant message and fixing typo 2025-10-31 17:16:59 +08:00