我正在使用quarkus和DevServices来启动一个postgresql数据库。我想用一个csv文件初始化这个数据库。为此,我想将一个csv文件挂载到由DevServices启动的postgresql容器中,这样我就可以使用“COPY...”初始化我的数据库。初始化脚本中的“FROM”。
我遵循quarkus数据库开发服务文档:
我尝试在应用程序属性中将以下内容添加到my project:
quarkus.datasource.devservices.volumes."/resources/init/"=/container/resources/
或
quarkus.datasource.devservices.volumes."src/main/resources/init/"=/container/resources/
问题是我的csv文件没有正确挂载:路径/container/resources位于postgres容器中,但resources文件夹为空。它应该包含csv文件titanic. csv。
我需要提供什么路径?
2条答案
按热度按时间eiee3dmh1#
您需要提供资源所在的绝对路径。但是,由于您希望绑定已经在类路径中的资源,因此可以用途:
其中“.”代表路径“src/test/resources”(如果存在)或“src/main/resources”。
我希望它有帮助!
mm5n2pyu2#
文档中的示例很好地解释了这一点,我认为:
你的尝试是错误的,原因有几个:
1.您的文件位于应用程序资源中,因此可以在类路径中使用,因此您可能应该使用
classpath:
变体,而不是您正在使用的文件系统变体。1.您的第一次尝试使用
"/resources/init/"
,这是一个绝对路径,可能不匹配任何东西(除非您在文件系统的根目录下有一个resources
目录,并且其中有一个init
目录,但我对此表示怀疑)。1.第二次尝试使用
src/main/resources/init/
,假设路径是相对于项目的根目录的,但我怀疑它们是相对的。它们更可能是相对于您启动应用程序的任何目录(在使用Maven进行测试的情况下,可能是./target
)。如果是你我会试试这个吗