Tôi đang sử dụng SQLAlchemy trong dự án không phải là một ứng dụng web. Nó là một ứng dụng máy chủ tải số lượng các đối tượng khác nhau từ cơ sở dữ liệu và sửa đổi chúng cục bộ, nhưng không muốn lưu các cập nhật đó vào cơ sở dữ liệu mỗi khi một cam kết được ban hành. Trước đây tôi đã làm việc với Django ORM cho một số dự án web và thấy nó phù hợp hơn cho những gì tôi đang cố gắng đạt được. Trong Django ORM tôi có thể .save() mỗi đối tượng bất cứ khi nào tôi muốn mà không lưu những thứ khác tôi có thể không muốn lưu. Tôi hiểu tại sao nó hoạt động như thế này trong SQLAlchemy, nhưng tôi tự hỏi làm thế nào tôi có thể làm điều này theo cách giống như Django?Tắt các thay đổi đối tượng cam kết trong SQLAlchemy
Cập nhật: Để làm cho nó dễ dàng hơn để hiểu những gì tôi đang cố gắng để đạt được, tôi sẽ cung cấp cho bạn một ví dụ.
Đây là cách nó hoạt động thực sự:
a = MyModel.query.get(1)
b = MyModel.query.get(1)
a.somefield = 1
b.somefield = 2
# this will save both of changed models
session.commit()
Đây là cách tôi muốn nó hoạt động:
a = MyModel.query.get(1)
b = MyModel.query.get(1)
a.somefield = 1
b.somefield = 2
a.save()
# I didn't want to save b, changes of b weren't committed
Tôi muốn có kiểm soát tốt hơn về những gì đang thực sự cứu rỗi. Tôi muốn lưu các thay đổi của từng đối tượng cứ 5 phút một lần.
Have a tìm thấy giải pháp của riêng bạn? Nếu bạn có xin vui lòng chia sẻ. –