【发布时间】:2024-05-28 21:10:02
【问题描述】:
我设置了 3 个配置文件(dev/test/prod)像魔术一样工作(java 和 spring boot 的新手)
在我的开发配置文件中,数据库是使用
生成的hibernate.ddl-auto
工作得很好......也与
.hibernate.hbm2ddl.import_files
我用测试数据填充数据库的女巫
在测试环境中,我想运行一个脚本,它从转储中设置数据库.. 更像是生产环境(实体由于某种原因与数据库不匹配)
所以我尝试使用:
datasource.data
&& ||
datasource.schema
在不同的组合中,与 文件:,类路径前缀.....
当我这样做时:
datasource.data=data.sql
它在说:
'ServletContext resource [/data.sql]' is invalid: The specified resource does not exist
... 移动文件 .... /src/main /src/main/resources /src/main/resources/META-INF .. 所有这些东西
我不明白“ServletContext”是什么意思…………
我确实禁用了
hibernate.ddl-auto
通过在该配置文件中将其设置为无
还有
hibernate.jpa.generate-ddl
设置为false,即使在设置ddl-auto时不需要/使用
...在我的“google-searching”这个任务中,我遇到了 2014 年的帖子并完全困惑,因为从那时起就出现了......
有,我指望它;),一些必须设置为“runThisScript”的属性,但我通过了文档......可能我错过了一些东西
有人能指出我正确的方向吗?
谢谢!
感谢@Blagoj 的快速响应,该链接帮助了我.. 脚本通过设置 ddl-auto 创建来执行.. 但它也从实体生成...如何阻止它这样做 && 有脚本执行了吗?
谢谢@luboskrnac 你的建议!会看看/使用它! ..困扰我的是,我必须做错/从我的观点来看不太好......在开发中匹配产品.....曾希望在开发中做对并且一旦我在那个状态下得到刺激可以证明它是正确的;)
...好吧,现在我最终手动设置了测试环境..但是一旦我知道更多,我会尝试自动化它...我看到总是有一个工具可以解决注入问题;)
【问题讨论】:
-
感谢您的快速响应...我将 generate-ddl 设置为 "create" ,据我了解,这会从实体 && 执行脚本生成数据库,但似乎工作...必须仔细看看它做了什么....现在在 sql-script 中出现错误;)
标签: java hibernate spring-boot