mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 05:45:37 +08:00
The store is a rebuildable, content-addressed cache — it does not need Galaxy's database, and living there was the source of every subtle lifecycle mechanism in the subsystem: store.commit() committed whatever request or job transaction was in flight, reads needed a private-Session isolation hack, the LazyToolBox constructor carried a post-init commit to avoid queue-worker idle-in-transaction locks, shutdown needed a haltable ordered before engine disposal, and a sa_session parameter threaded through the factory, populator, watcher and CLI. Standalone stores are now the only kind: the default is a SQLite file under tool_source_disk_path (any SQLAlchemy URL via tool_source_stores for shared multi-host deployments), committing per write on its own engine. The tool_source_record/tool_index tables, their migration, the model classes and the whole session plumbing are gone, and the store is only initialized when use_lazy_toolbox is enabled — default deployments no longer touch any of this at boot. The ToolSourceStore ABC loses commit() (every backend persists per write). The dev/watch-mode watcher now populates per file without broadcasting and keeps its single debounced reload notification for the batch. Claude-Session: https://claude.ai/code/session_018L7ZmCv2ubKA3JNeSL8Pkr