aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2017-05-08 16:35:57 -0400
committerStewart Stewart <stewinsalot@gmail.com>2017-05-08 16:38:30 -0400
commita20127d674bb88af2cebdefe4de7b116d780a383 (patch)
treef4aa8aa86f8273f5b19a922a4baa77966e9452ce
parent2dfb2c893af3be9100af229d229087700f7c2862 (diff)
downloadslick-codegen-plugin-a20127d674bb88af2cebdefe4de7b116d780a383.tar.gz
slick-codegen-plugin-a20127d674bb88af2cebdefe4de7b116d780a383.tar.bz2
slick-codegen-plugin-a20127d674bb88af2cebdefe4de7b116d780a383.zip
add statements for creating/dropping schema namespaces
-rw-r--r--src/main/scala/Generators.scala24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/main/scala/Generators.scala b/src/main/scala/Generators.scala
index 7138a3c..92a3ab1 100644
--- a/src/main/scala/Generators.scala
+++ b/src/main/scala/Generators.scala
@@ -63,10 +63,26 @@ class TableSourceCodeGenerator(
|}
|""".stripMargin
- override def code = super.code.lines.drop(1).mkString("\n")
- // Drops needless import: `"import slick.model.ForeignKeyAction\n"`.
- // Alias to ForeignKeyAction is in profile.api
- // TODO: fix upstream
+ override def code = {
+ // Drops needless import: `"import slick.model.ForeignKeyAction\n"`.
+ // Alias to ForeignKeyAction is in profile.api
+ // TODO: fix upstream
+ val tableCode = super.code.lines.drop(1).mkString
+
+ val tripleQuote = "\"\"\""
+ val schemaCode =
+ s"""|val createSchemaNameSpace = {
+ | implicit val GRUnit = slick.jdbc.GetResult(_ => ())
+ | sql${tripleQuote}CREATE SCHEMA IF NOT EXISTS "$schemaName";${tripleQuote}.as[Unit]
+ |}
+ |
+ |val dropSchemaNameSpace = {
+ | implicit val GRUnit = slick.jdbc.GetResult(_ => ())
+ | sql${tripleQuote}DROP SCHEMA "$schemaName" CASCADE;${tripleQuote}.as[Unit]
+ |} """
+
+ tableCode + "\n\n" + schemaCode
+ }
override def Table = new this.TypedIdTable(_) { table =>
override def TableClass = new TableClass() {