aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Christopher Vogt <oss.nsp@cvogt.org>2015-08-09 19:08:24 -0400
committerJan Christopher Vogt <oss.nsp@cvogt.org>2015-08-09 19:08:24 -0400
commit63c3a0246d903def3ed7b3845ecd108e03ddeaa1 (patch)
tree17e63ee59ff1f218e0692cd414a3d1b31a2930f1
parentb40dfa417eaf77216ebe5df7d2a80dd6f521dd02 (diff)
parent76ee13c8818bb386ba94a5c02037deb0ed7046c9 (diff)
downloadslick-codegen-example-63c3a0246d903def3ed7b3845ecd108e03ddeaa1.tar.gz
slick-codegen-example-63c3a0246d903def3ed7b3845ecd108e03ddeaa1.tar.bz2
slick-codegen-example-63c3a0246d903def3ed7b3845ecd108e03ddeaa1.zip
Merge pull request #2 from krrrr38/slick3.0.1
Update build for 3.0.1
-rwxr-xr-xREADME.md2
-rw-r--r--project/Build.scala16
-rw-r--r--src/main/scala/Example.scala7
-rw-r--r--src/main/sql/create.sql4
4 files changed, 16 insertions, 13 deletions
diff --git a/README.md b/README.md
index cbe7707..007cf83 100755
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
-This code example shows how to setup sbt to use Slick's preconfigued code-generator for working with an existing database schema. `project/Build.scala` enables automatically as well as manually triggered code-generation. `src/main/scala/Example.scala` uses the generated code. The code is generated into file `target/scala-2.10/src_managed/slick/demo/Tables.scala`, which can be changed in the sbt script. It is usally wise to keep the generated Slick code under version control.
+This code example shows how to setup sbt to use Slick's preconfigued code-generator for working with an existing database schema. `project/Build.scala` enables automatically as well as manually triggered code-generation. `src/main/scala/Example.scala` uses the generated code. The code is generated into file `target/scala-2.11/src_managed/slick/demo/Tables.scala`, which can be changed in the sbt script. It is usally wise to keep the generated Slick code under version control.
Use `sbt run` to run the demo.
diff --git a/project/Build.scala b/project/Build.scala
index a7d27d9..17f055b 100644
--- a/project/Build.scala
+++ b/project/Build.scala
@@ -7,16 +7,18 @@ import Tests._
* database before compiling the projects code.
*/
object myBuild extends Build {
+ val slickVersion = "3.0.1"
+
lazy val mainProject = Project(
id="main",
base=file("."),
settings = Project.defaultSettings ++ Seq(
- scalaVersion := "2.10.3",
+ scalaVersion := "2.11.6",
libraryDependencies ++= List(
- "com.typesafe.slick" %% "slick" % "2.1.0",
- "com.typesafe.slick" %% "slick-codegen" % "2.1.0-RC3",
- "org.slf4j" % "slf4j-nop" % "1.6.4",
- "com.h2database" % "h2" % "1.3.170"
+ "com.typesafe.slick" %% "slick" % slickVersion,
+ "com.typesafe.slick" %% "slick-codegen" % slickVersion,
+ "org.slf4j" % "slf4j-nop" % "1.7.12",
+ "com.h2database" % "h2" % "1.4.187"
),
slick <<= slickCodeGenTask, // register manual sbt command
sourceGenerators in Compile <+= slickCodeGenTask // register automatic code generation on every compile, remove for only manual use
@@ -29,9 +31,9 @@ object myBuild extends Build {
val outputDir = (dir / "slick").getPath // place generated files in sbt's managed sources folder
val url = "jdbc:h2:mem:test;INIT=runscript from 'src/main/sql/create.sql'" // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run
val jdbcDriver = "org.h2.Driver"
- val slickDriver = "scala.slick.driver.H2Driver"
+ val slickDriver = "slick.driver.H2Driver"
val pkg = "demo"
- toError(r.run("scala.slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log))
+ toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log))
val fname = outputDir + "/demo/Tables.scala"
Seq(file(fname))
}
diff --git a/src/main/scala/Example.scala b/src/main/scala/Example.scala
index ffa964b..3eaf9d3 100644
--- a/src/main/scala/Example.scala
+++ b/src/main/scala/Example.scala
@@ -2,7 +2,8 @@ object Tables extends{ // or just use object demo.Tables, which is hard-wired to
val profile = scala.slick.driver.H2Driver
} with demo.Tables
import Tables._
-import Tables.profile.simple._
+import Tables.profile.api._
+import scala.concurrent.ExecutionContext.Implicits.global
object Example extends App {
// connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run
@@ -13,8 +14,8 @@ object Example extends App {
val q = Companies.join(Computers).on(_.id === _.manufacturerId)
.map{ case (co,cp) => (co.name, cp.name) }
- db.withTransaction { implicit session =>
- println( q.run.groupBy{ case (co,cp) => co }
+ db.run(q.result).foreach { result =>
+ println(result.groupBy{ case (co,cp) => co }
.mapValues(_.map{ case (co,cp) => cp })
.mkString("\n")
)
diff --git a/src/main/sql/create.sql b/src/main/sql/create.sql
index 27d5034..22f290e 100644
--- a/src/main/sql/create.sql
+++ b/src/main/sql/create.sql
@@ -1,5 +1,5 @@
-create table "COMPUTERS" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL,"MANUFACTURER_ID" INTEGER NOT NULL);
-create table "COMPANIES" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL);
+create table IF NOT EXISTS "COMPUTERS" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL,"MANUFACTURER_ID" INTEGER NOT NULL);
+create table IF NOT EXISTS "COMPANIES" ("ID" INTEGER NOT NULL,"NAME" VARCHAR NOT NULL);
insert into "COMPANIES" values (1,'Apple Inc.');