gpt4 book ai didi

quarkus - 有没有办法在 Quarkus 测试之前强制执行 import.sql?

转载 作者:行者123 更新时间:2023-12-04 11:00:55 24 4
gpt4 key购买 nike


我想将 H2 测试资源用于我的 Quarkus 测试:

@QuarkusTestResource(H2DatabaseTestResource.class)

但是我需要在数据库中提供一些表。尽管我在其中放置了一个带有 DDL 的 resources/import.sql,但测试失败了,因为它在执行 import.sql 之前尝试使用配置中的表:

quarkus.security.jdbc.principal-query.sql=SELECT u.password, u.role FROM test_user u WHERE u.username=?

结果:

Caused by: org.h2.jdbc.JdbcSQLException: Table "TEST_USER" not found; SQL statement:
SELECT u.password, u.role FROM test_user u WHERE u.username=? [42102-197]

有什么方法可以在 Quarkus 读取配置文件之前执行 SQL?

最佳答案

您需要在 JDBC 连接字符串中包含 INIT 参数,其中包含对要执行的 SQL 脚本的引用。示例:

quarkus.datasource.url=jdbc:h2:tcp://localhost/mem:elytron_jdbc_test;DB_CLOSE_DELAY=-1;DB_CLOSE_DELAY=-1;INIT=RUNSCRIPT FROM 'classpath:import.sql'

查看保护 Quarkus with H2 Database 的示例应用程序.

关于quarkus - 有没有办法在 Quarkus 测试之前强制执行 import.sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com