【问题标题】:How does one run a SQL script before starting application with Slick?在使用 Slick 启动应用程序之前如何运行 SQL 脚本?
【发布时间】:2016-01-09 05:10:46
【问题描述】:

Slick 有没有一种方法可以让您在应用程序启动之前运行 SQL 代码,或者像在 Hibernate 中那样在测试设置中运行 SQL 代码?

查看示例 https://github.com/geowarin/hibernate-examples/tree/master/standalone-data-jpa/src/main/resources

【问题讨论】:

    标签: playframework slick play-slick


    【解决方案1】:

    您可以在 Play 框架中使用Evolutions。如果你使用play-slick,你可以添加play-slick-evolutions依赖,并确保play.evolutions.enabledapplication.conf中没有设置为false。

    https://www.playframework.com/documentation/2.4.x/Evolutions

    https://www.playframework.com/documentation/2.4.x/PlaySlick

    [更新]

    根据your comment,您似乎希望 SQL 在启动时运行,而不是在迁移时运行。如果是这样,那么您可以使用 JavaGlobal/ScalaGlobal 播放 2.4 GlobalSettings doc。

    【讨论】:

    • 谢谢。进化已启用。我的意思是数据加载部分。我可以制作一个包含插入表 (Blah) 值 (Blah, Blah Blah, 3) 的脚本,Slick 将在应用程序启动之前和迁移之后查找并运行它。
    • 您可以尝试在 Play 框架中使用GlobalSettings
    • 我正在使用 play 2.4。不过我还是很困惑。我应该定义一个带有急切绑定的模块来运行 SQL 脚本吗?我怎么做?另外,如果 sbt 项目在没有 Play 的情况下使用 slick,你将如何做到这一点?
    • 如果是简单的slick项目,参考hello-slick模板。 github.com/typesafehub/activator-hello-slick/blob/master/…
    • 好的。那是使用 scala 代码添加数据。我很好奇专门使用 sql 脚本添加数据而无需编写 scala 代码来进行插入。我有一个现有的数据库,我可以使用插入语句将其导出到我的 play 应用程序中,但我不想使用灵活的模式生成。你知道调用 sql 脚本在 scala 中运行的方法吗?
    【解决方案2】:

    我的问题有点重复。看这里 Play Framework DML insert script.

    使用 play 框架,您只需要在名为 2.sql 的 Evolutions 目录中创建一个 sql 文件,其中包含您需要的插入语句。

    我仍在试图弄清楚你是否可以在不玩独立的 sbt 应用程序的情况下做这样的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2017-01-09
      • 2019-03-28
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多