Java 如何使Play framework应用程序在执行控制器CRUD API方法之前运行SQL脚本?
我正在创建一个新的play框架应用程序,并使用slick连接到h2数据库。但当我运行应用程序并访问数据时,它会说找不到表。我希望它应该运行conf/evolutions/default文件夹中的1.sql文件 基本上是玩。进化不起作用 下面是我的application.conf文件Java 如何使Play framework应用程序在执行控制器CRUD API方法之前运行SQL脚本?,java,h2,slick,play-framework-2.7,Java,H2,Slick,Play Framework 2.7,我正在创建一个新的play框架应用程序,并使用slick连接到h2数据库。但当我运行应用程序并访问数据时,它会说找不到表。我希望它应该运行conf/evolutions/default文件夹中的1.sql文件 基本上是玩。进化不起作用 下面是我的application.conf文件 slick.dbs.default.driver = "slick.jdbc.MySQLProfile$" slick.dbs.default.db.driver = "com.mysql.cj.jdbc.Drive
slick.dbs.default.driver = "slick.jdbc.MySQLProfile$"
slick.dbs.default.db.driver = "com.mysql.cj.jdbc.Driver"
slick.dbs.default.db.url = "jdbc:mysql://localhost:3306/playscalaslickexample"
slick.dbs.default.db.user = ""
slick.dbs.default.db.password = ""
# Evolutions
# ~~~~~
# You can disable evolutions if needed
play.evolutions.enabled=true
play.evolutions.autoApply=true
# You can disable evolutions for a specific datasource if necessary
play.evolutions.db.default.enabled = true
我在evolutions.default文件夹中有1.sql文件
我还尝试更改文件夹路径,如evolutions.playscalaslickexample。我仍然没有看到任何变化。将evolutions和jdbc添加到依赖项列表中。此外,1.sql脚本应该位于应用程序的conf/evolutions/{database name}或conf/evolutions/default目录中。进化是自动激活的。如果您的数据库架构不是最新的,则需要启动应用程序并在浏览器上尝试localhost:9000。此时将出现一个错误页面,您可以通过运行相应的SQL脚本来同步数据库架构 您也可以参考文档 请按照以下步骤操作,这可能会对您有所帮助
我试过你的建议。但我看不到任何变化。请让我知道我遗漏了什么?我把数据库从h2改成了mysql。这有关系吗?我更新了我的答案并添加了几个步骤,您可以按照这些步骤操作