java - 如何运行使用 Play Framework 应用程序数据库的命令行 scala 脚本?

标签 java scala playframework playframework-2.0

我在我的 app/scripts 文件夹中有这个(我在 app/ 中创建了这个文件夹)。我不确定如何在这里正确设置类路径,因此我什至没有运行它来知道它是否真的会连接到数据库。如何从命令行以干净的方式运行它?

package scripts

import scala.collection.TraversableOnce
import scala.collection.generic.SeqForwarder
import scala.io.Source
import scala.slick.jdbc.{StaticQuery => Q}
import scala.slick.session.Session
import scala.slick.session.Database
import play.api.db.DB
import tables.Campeonatos
import tables.Jogos
import org.postgresql.Driver
import play.api.test._
import play.api.test.Helpers._

// ...

class InsertJogosCSV extends App {
  val dao = new DAO()
  val application = FakeApplication()

  def insertJogos(csv: CSV)(implicit s: Session) = {
    val times = dao.getTimeIdByNameMap
    var count = 0
    csv foreach { case cols =>
      count += 1
      dao.insertJogo(cols, times)
    }
    count
  }

  val csvFilePath: String = args(0)
  val csv = new CSV(csvFilePath)
  csv.printLines
  running(application) {
    val realDatabase = Database.forDataSource(DB.getDataSource()(application))
    implicit val s = realDatabase.createSession
    insertJogos(csv)
  }
}

最佳答案

我写了一篇博文来解释我的最终解决方案。应该作为问题的答案。

http://blog.felipe.rs/2014/05/15/run-maintenance-scripts-in-the-context-of-a-running-play-framework-application/

关于java - 如何运行使用 Play Framework 应用程序数据库的命令行 scala 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583244/

相关文章:

java - 在 JavaFX 中拖动未修饰的舞台

java - 使用 CellRenderer 来自 jTable 的颜色特定单元格

java - 具有主/备份数据库的单个 JDBC OracleDataSource/HikariCP

scala - Azure Databricks Notebook 在包中时无法找到 "dbutils"

rest - Play Framework CRUD

java - 任务的并行和非并行执行

scala - 从 Scala 选项内的选项中提取值

Scala Future.find

scala - Play Framework 2.2.1 Json Combinators - 读取和写入编译错误

Play2 中 inputRadioGroup 的 Java 示例