diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2016-11-16 13:56:54 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-16 13:56:54 -0800 |
commit | 8a7d0ac4e5b4eaeb493a65d6f52cb16ef77dcff7 (patch) | |
tree | 0f5cf84cb4ed542a510e214a8bfeb17b05ede901 | |
parent | 4a950f529691d60ecb58ae8a930af3858ed8f5e2 (diff) | |
parent | d6a2e2265212bf7a38f9de7e8846bd1031827787 (diff) | |
download | slick-codegen-plugin-8a7d0ac4e5b4eaeb493a65d6f52cb16ef77dcff7.tar.gz slick-codegen-plugin-8a7d0ac4e5b4eaeb493a65d6f52cb16ef77dcff7.tar.bz2 slick-codegen-plugin-8a7d0ac4e5b4eaeb493a65d6f52cb16ef77dcff7.zip |
Merge pull request #8 from drivergroup/TM-251-fix-codegenSchemaWhitelist-filter
TM-251 Fix codegen defaults
-rw-r--r-- | src/main/scala/CodegenPlugin.scala | 8 | ||||
-rw-r--r-- | src/main/scala/NamespacedCodegen.scala | 24 |
2 files changed, 19 insertions, 13 deletions
diff --git a/src/main/scala/CodegenPlugin.scala b/src/main/scala/CodegenPlugin.scala index 366ef19..8bde45d 100644 --- a/src/main/scala/CodegenPlugin.scala +++ b/src/main/scala/CodegenPlugin.scala @@ -19,10 +19,16 @@ object CodegenPlugin extends AutoPlugin { Generator.run( new java.net.URI(codegenURI.value), codegenPackage.value, - codegenSchemaWhitelist.value, + Some(codegenSchemaWhitelist.value).filter(_.nonEmpty), codegenOutputPath.value, codegenForeignKeys.value ) } + + lazy val baseCodegenSettings: Seq[Def.Setting[_]] = Seq( + codegen := slickCodeGenTask.value, + codegenSchemaWhitelist := List.empty, + codegenForeignKeys := Map.empty + ) } } diff --git a/src/main/scala/NamespacedCodegen.scala b/src/main/scala/NamespacedCodegen.scala index d73fc3e..3ab22dc 100644 --- a/src/main/scala/NamespacedCodegen.scala +++ b/src/main/scala/NamespacedCodegen.scala @@ -16,14 +16,14 @@ import slick.model.{Column, Model, Table} object Generator { - def run(uri: URI, pkg: String, schemaNames: List[String], outputPath: String, manualForeignKeys: Map[(String, String), (String, String)]) = { + def run(uri: URI, pkg: String, schemaNames: Option[List[String]], outputPath: String, manualForeignKeys: Map[(String, String), (String, String)]) = { val dc: DatabaseConfig[JdbcProfile] = DatabaseConfig.forURI[JdbcProfile](uri) - val parsedSchemas: Map[String, List[String]] = SchemaParser.parse(schemaNames) - val dbModel: Model = Await.result(dc.db.run(SchemaParser.createModel(dc.driver, parsedSchemas)), Duration.Inf) + val parsedSchemasOpt: Option[Map[String, List[String]]] = schemaNames.map(SchemaParser.parse) + val dbModel: Model = Await.result(dc.db.run(SchemaParser.createModel(dc.driver, parsedSchemasOpt)), Duration.Inf) val generator = new Generator(uri, pkg, dbModel, outputPath, manualForeignKeys) val generatedCode = generator.code - parsedSchemas.keys.map(schemaName => FileHelpers.schemaOutputPath(outputPath, schemaName)) + parsedSchemasOpt.getOrElse(Map()).keys.map(schemaName => FileHelpers.schemaOutputPath(outputPath, schemaName)) } } @@ -214,16 +214,16 @@ object SchemaParser { .groupBy(_.head) .mapValues(_.flatMap(_.tail)) - def createModel(jdbcProfile: JdbcProfile, mappedSchemas: Map[String, List[String]]): DBIO[Model] = { + def createModel(jdbcProfile: JdbcProfile, mappedSchemasOpt: Option[Map[String, List[String]]]): DBIO[Model] = { val allTables: DBIO[Vector[MTable]] = MTable.getTables - val filteredTables: DBIO[Vector[MTable]] = allTables.map( - (tables: Vector[MTable]) => tables.filter(table => - table.name.schema.flatMap(mappedSchemas.get).exists(ts => - ts.isEmpty || ts.contains(table.name.name)) - ) - ) - jdbcProfile.createModel(Some(filteredTables)) + val filteredTables = mappedSchemasOpt.map(mappedSchemas => + allTables.map( + (tables: Vector[MTable]) => tables.filter(table => + table.name.schema.flatMap(mappedSchemas.get).exists(ts => + ts.isEmpty || ts.contains(table.name.name))))) + + jdbcProfile.createModel(filteredTables orElse Some(allTables)) } } |