aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2017-05-08 15:47:29 -0700
committerGitHub <noreply@github.com>2017-05-08 15:47:29 -0700
commit124d8025e0f17de94ce40d24c340947dfb14cdf6 (patch)
treea5f5570b98a65bcbef1e58eb63707c3435b39d5b
parent2dfb2c893af3be9100af229d229087700f7c2862 (diff)
parent0a5d8dfde606fce0771ece81690dea85c7be929e (diff)
downloadslick-codegen-plugin-124d8025e0f17de94ce40d24c340947dfb14cdf6.tar.gz
slick-codegen-plugin-124d8025e0f17de94ce40d24c340947dfb14cdf6.tar.bz2
slick-codegen-plugin-124d8025e0f17de94ce40d24c340947dfb14cdf6.zip
Merge pull request #27 from drivergroup/schema-ddl
Generate statements for creating/dropping schemata
-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..92bb9ee 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("\n")
+
+ val tripleQuote = "\"\"\""
+ val namespaceDDL =
+ s"""|val createNamespaceSchema = {
+ | implicit val GRUnit = slick.jdbc.GetResult(_ => ())
+ | sql${tripleQuote}CREATE SCHEMA IF NOT EXISTS "$schemaName";${tripleQuote}.as[Unit]
+ |}
+ |
+ |val dropNamespaceSchema = {
+ | implicit val GRUnit = slick.jdbc.GetResult(_ => ())
+ | sql${tripleQuote}DROP SCHEMA "$schemaName" CASCADE;${tripleQuote}.as[Unit]
+ |} """
+
+ tableCode + "\n\n" + namespaceDDL
+ }
override def Table = new this.TypedIdTable(_) { table =>
override def TableClass = new TableClass() {