存在数据库从命令行导入文件

米兰·托多罗维奇

我必须通过 shell 脚本使用命令行将一些 xml 文件导入到exist-db 中。有些文件可能已经存在,我不想覆盖这些文件。是否有命令行参数(或其他一些解决方案)使存在跳过并报告现有文件?我试过浏览官方文档,但没有找到类似的内容。

乔维兹

eXist 的命令行客户端不提供警告/禁用资源覆盖的能力,这是对的。(请参阅http://exist-db.org/exist/apps/doc/java-admin-client.xml#command-line 上的客户端文档。)

避免覆盖目标的最短路径是使用 WebDAV 客户端,该客户端在覆盖时发出警告并为您提供处理这种情况的选项。例如,我知道 Transmit 和 oXygen XML Editor 会在存在会被覆盖的资源/集合时提醒您。(在幕后,他们获取给定目录中的资源列表,然后在您尝试 PUT 时警告您,如果列表中有此名称的资源。)

如果必须使用命令行,那么在继续之前,您需要某种方式来列出远程集合或查询它是否存在资源。例如,如果您将此查询存储到“check.xq”中,那么您可以将其运行为bin/client.sh -F check.xq

doc-available("/db/my/collection/file.xml")
(: or for binary docs: 
      util:binary-doc-available("/db/my/collection/file.txt")
   or either XML documents or binary resources: 
      some $resource in xmldb:get-child-resources("/db/my/collection") satisfies $resource eq "file.xml" 
:)

eXist 还支持 Apache Ant(参见http://exist-db.org/exist/apps/doc/ant-tasks.xml)。虽然xdb:store没有控制覆盖的标志,但您可以编写一个 ant 脚本,在存储文件之前首先检查文件是否存在xdb:exist- 报告现有文件和跳过。ant 选项的好处在于您可以将参数作为命令行参数传递给它,例如ant upload-file -Ddir=/path/to -Dfile=file.xml -Dcollection=/db/my/collection- 您可以将服务器 URL 和凭据等参数存储在build.properties文件中。我没有准备好完整的示例,但是如果您对追求 ant 选项感兴趣,请尝试一下,如果遇到任何问题,请在评论中告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果文件导入命令行不存在,MySQL创建数据库

来自分类Dev

从命令行创建RethinkDB数据库

来自分类Dev

从命令行创建Intellisense数据库?

来自分类Dev

从命令行创建空的sqlite数据库

来自分类Dev

从命令行创建Intellisense数据库?

来自分类Dev

如何从命令行执行Zim数据库文件?

来自分类Dev

如何使用命令行导入数据库?

来自分类Dev

使用mysql命令行导入mysql数据库

来自分类Dev

如何使用命令行导入数据库?

来自分类Dev

使用命令行导入mysql数据库

来自分类Dev

数据库MSBuild发布无法从命令行运行

来自分类Dev

从命令行使用destroy_all后无法播种数据库

来自分类Dev

从命令行删除ubuntu上的postgres数据库

来自分类Dev

在msbuild中从命令行导入.targets文件

来自分类Dev

从命令行导入PostgreSQL CSV

来自分类Dev

从命令行导入PyCharm设置

来自分类Dev

从命令行导入Python

来自分类Dev

如何知道命令行MySQL数据库导入是否已崩溃?

来自分类Dev

从 PHP 访问 SQLITE 数据库时出错(但它可以从命令行运行...)

来自分类Dev

如何在命令行上解密加密的sqlcipher数据库文件?

来自分类Dev

使用mysqlimport命令从命令行将csv文件导入mysql

来自分类Dev

从命令行下载.zip文件

来自分类Dev

从命令行获取文件的标志?

来自分类Dev

从命令行传递文件位置

来自分类Dev

从命令行生成.xcscheme文件

来自分类Dev

从命令行获取文件的标志?

来自分类Dev

从命令行打印Markdown文件

来自分类Dev

从命令行合并.wav文件

来自分类Dev

要求从命令行调用文件