Ví dụ chúng ta có một bảng mà các cửa hàng LONGBLOB
đối tượng:Làm thế nào để loại bỏ thuộc tính hoãn lại của thực thể SQLAlchemy khỏi bộ nhớ?
class MyEntity(_base):
id = Column('ID', Integer, primary_key=True)
metadata = Column('META', String(512), nullable=False)
bigData = deferred(Column('BIG_DATA', LONGBLOB, nullable=False))
Cột với LONGBLOB
đánh dấu là chậm, tức là nó được nạp chỉ về tiếp cận thuộc tính này của đối tượng cụ thể.
tôi cần phải truy vấn danh sách các đối tượng từ cơ sở dữ liệu và duyệt qua bộ sưu tập:
entities = dbSession.query(MyEntity).all()
for entity in entities:
...
entity.bigData # load BLOB from the database and do smth with data
...
Trong vòng này tất cả các đốm màu sẽ được nạp từ cơ sở dữ liệu và bộ nhớ sẽ bị cạn kiệt. Tôi cần một cách để làm sạch bộ nhớ vào cuối mỗi chu kỳ. Xóa đối tượng khỏi phiên và xóa khỏi bộ nhớ hoàn toàn không tiện dụng ...
Làm cách nào để xóa thuộc tính cụ thể của đối tượng (LONGBLOB
) nhưng không loại bỏ đối tượng khỏi phiên?
Bạn đã thử 'entity.bigData = None' – stovfl