我必须通过shell脚本使用命令行将一些XML文件导入到存在数据库。有一些文件已经存在,我不想覆盖这些文件。是否有命令行参数(或其他解决方案)使存在跳过并报告现有文件?我试过浏览官方文档,但我没有找到类似的东西。存在数据库从命令行导入文件
回答
你说的对,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"
:)
存在,则也会支持Apache Ant的(见http://exist-db.org/exist/apps/doc/ant-tasks.xml)。虽然xdb:store
没有控制覆盖的标志,但您可以在使用xdb:exist
进行存储之前先编写一个检查文件是否存在的ant脚本 - 报告现有文件和跳过。关于ant选项的好处是您可以将参数作为命令行参数传递给它(例如ant upload-file -Ddir=/path/to -Dfile=file.xml -Dcollection=/db/my/collection
),并且您可以将参数(如服务器URL和凭证)存储在build.properties
文件中。我没有准备好完整的示例,但如果您有兴趣寻求ant选项,请尝试一下,如果遇到任何问题,请在评论中告诉我。
感谢您的帮助。我可能会使用xquery,但我希望存在clent有我需要的选项。再次感谢你。 –
- 1. 从命令行导入单个数据库的mysql文件
- 2. 从文件导入数据的命令
- 3. 导入MySQL数据库与XAMPP在命令行
- 4. 如何在python中从命令行导入文件
- 5. 如何从mysql命令行恢复mysql xml数据库文件?
- 6. 从命令行访问SQLite数据库
- 7. 是否可以从CentOS命令行执行数据库插入?
- 8. 从命令行保存所有文件
- 9. 将json文件从gcloud存储导入到Firebase数据库中
- 10. 命令将mysql数据库导出到文件
- 11. 无法从csv文件导入多个行到sqlite数据库
- 12. 从命令行导入java包
- 13. 根据用户指定的输入从python脚本执行windows命令行从CVS存储库检索文件
- 14. 将文本文件导入数据库
- 15. 导航SQLite3数据库命令
- 16. BiarEnginer.jar /命令行导入文档/使用
- 17. 从命令行创建github存储库
- 18. Postgres的命令行工具,导入/导出数据/ DDL
- 19. 读取命令行参数,从文件
- 20. 从Excel文件在线导入数据
- 21. 如何从csv文件导入数据到数据库中?
- 22. 从数据库导入数据到JS文件
- 23. 从文件导入数据到数据库与字段关联?
- 24. 将数据从txt文件导入Oracle数据库
- 25. 使用java从JSON文件导入数据到MySQL数据库
- 26. 如何将数据从CSV文件导入数据库
- 27. 从txt文件导入数据到SQL数据库
- 28. SQL文件导入在使用命令行时不起作用
- 29. mysql文件导入的终端命令
- 30. 导入PFX文件到特定的证书存储在命令行
哪个版本的eXist?你目前使用什么方法在shell脚本中上传文件? – joewiz
我使用最新的存在版本。用于导入的命令是bin/client.sh -m/db/my/collection -p /path/to/file.xml –