diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2017-05-08 15:47:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-08 15:47:29 -0700 |
commit | 124d8025e0f17de94ce40d24c340947dfb14cdf6 (patch) | |
tree | a5f5570b98a65bcbef1e58eb63707c3435b39d5b | |
parent | 2dfb2c893af3be9100af229d229087700f7c2862 (diff) | |
parent | 0a5d8dfde606fce0771ece81690dea85c7be929e (diff) | |
download | slick-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.scala | 24 |
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() { |