Skip to content

Instantly share code, notes, and snippets.

@leandrob13
Created November 30, 2016 21:47
Show Gist options
  • Save leandrob13/ce1020778d21fd0fe102662116afe9e2 to your computer and use it in GitHub Desktop.
Save leandrob13/ce1020778d21fd0fe102662116afe9e2 to your computer and use it in GitHub Desktop.
lazy val root = (project in file(".")).enablePlugins(PlayScala).
settings(
slick <<= slickCodeGenTask // register manual sbt command
)
// code generation task
lazy val slick = TaskKey[Seq[File]]("gen-tables")
lazy val slickCodeGenTask = (sourceManaged, dependencyClasspath in Compile, runner in Compile, streams) map { (dir, cp, r, s) =>
val outputDir = (dir / "slick").getPath // place generated files in sbt's managed sources folder
val url = "jdbc:oracle:thin:@mdebddd06.suranet.com:1537/DLLOLFHA" // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run
val jdbcDriver = "oracle.jdbc.driver.OracleDriver"
val slickDriver = "com.typesafe.slick.driver.oracle.OracleDriver"
val pkg = "sura"
toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg, "$user", "$password"), s.log))
val fname = outputDir + "/sura/Tables.scala"
Seq(file(fname))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment