我在 Docker 卷中使用 Orthanc
volumes:
- /mnt/win_share/test:/var/lib/orthanc/db/
Orthanc.js
sqlite
的文件路径
"StorageDirectory": "/var/lib/orthanc/db",
我正在尝试将 Docker 中初始化的 Orthanc 路径复制到安装在我的 Ubuntu 系统上的驱动器,每当我尝试运行命令时,我都会收到以下错误
错误:
- SQLite 错误代码 5
- 无法序列化作业引擎:SQLite:无法运行缓存的语句
- StatelessDatabaseOperations:3260] 异常 [SQLite: 无法运行缓存的语句 - ]
最佳答案
我在尝试运行两个指向同一个 SQLite 数据库的 Orthanc 实例时遇到了类似的问题。
基本上,这个 SQLite 错误代码 5 意味着 SQLite 正忙。 我能找到的唯一解决方案是使用另一个数据库(例如 PostgreSQL)。
Orthanc 配置文件:
"Name": "Orthanc inside Docker",
"PostgreSQL" : {
"EnableIndex" : true,
"EnableStorage" : true,
"Lock" : false,
"ConnectionUri" : "postgresql://username:password@host:port/database"
},
"Plugins": [
"/home/user/orthancdatabases/BuildPostgreSQL/libOrthancPostgreSQLIndex.so",
"/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLStorage.so"
],
发生这种情况是因为有一个数据库存储 DICOM 和 JSON 文件,另一个数据库存储 DICOM 层次结构和标签。第二个由 Orthanc 同步访问。
但是,在 PostgreSQL 插件中,层次结构和标签的数据库被正确隔离,允许您随意访问同一个数据库。
希望这有帮助!
关于docker - SQLite:无法运行缓存的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71405254/