AOSSIE-Org / AOSSIE-Org/PictoPy

BUG: Orphaned Rows in image_embeddings and semantic_labels on Image Deletion

Đang mở Phù hợp với người mới
#1,405 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
284
Fork
680
Merge trung bình
7 ngày 5 giờ
Pull request đã merge (30 ngày)
4

Mô tả

### Is there an existing issue for this?

- [x] I have searched the existing issues

### What happened?

Files affected:

- `backend/app/database/image_embeddings.py`
- `backend/app/database/semantic_labels.py`

What is the problem?
Both database modules define foreign key constraints with `ON DELETE CASCADE` referencing the `images(id)` column. This is meant to ensure that when an image is deleted, its corresponding embeddings and semantic labels are deleted automatically.
However, both modules initialize database connections using `_connect()` from `app.database.images` which does not execute `PRAGMA foreign_keys = ON;`. Because SQLite disables foreign keys by default, deleting an image leaves **orphaned embeddings and semantic labels** in the database forever.

Proposed Fix:
Refactor both modules to use the `get_db_connection()` context manager from `app.database.connection` which enforces foreign key constraints correctly.

I wish to work on this issue!

### Record

- [x] I agree to follow this project's Code of Conduct

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Read backend/app/database/image_embeddings.py and backend/app/database/semantic_labels.py, then inspect get_db_connection() in app.database.connection and the current _connect() usage from app.database.images. Replace the connection approach as described and verify that deleting an image also removes its embeddings and semantic labels without leaving orphaned rows.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python, sqlite
Lĩnh vực
database
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
78/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.