aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/CodegenPlugin.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/CodegenPlugin.scala')
-rw-r--r--src/main/scala/CodegenPlugin.scala15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/main/scala/CodegenPlugin.scala b/src/main/scala/CodegenPlugin.scala
index d6ac8c8..7b51fb8 100644
--- a/src/main/scala/CodegenPlugin.scala
+++ b/src/main/scala/CodegenPlugin.scala
@@ -4,18 +4,25 @@ import complete.DefaultParsers._
object CodegenPlugin extends AutoPlugin {
override def requires = sbt.plugins.JvmPlugin
+ type TableColumn = (String, String)
+
object autoImport {
lazy val genTables = TaskKey[Seq[File]]("gen-tables")
- lazy val dbConfigURI = SettingKey[String]("uri for the database configuration")
+ lazy val uri = SettingKey[String]("uri for the database configuration")
lazy val pkg = SettingKey[String]("package in which to place generated code")
lazy val tablesFilename = SettingKey[String]("path for slick table models")
lazy val rowsFilename = SettingKey[String]("path for row case classes")
lazy val schemas = SettingKey[List[String]]("schemas and tables to process")
+ lazy val manualForeignKeys = SettingKey[Map[TableColumn, TableColumn]]("foreign key references to data models add manually")
lazy val slickCodeGenTask = Def.task {
- val uri = new java.net.URI(dbConfigURI.value)
-
- codegen.NamespacedCodegen.run(uri, pkg.value, tablesFilename.value, rowsFilename.value, schemas.value)
+ codegen.NamespacedCodegen.run(
+ new java.net.URI(uri.value),
+ pkg.value,
+ tablesFilename.value,
+ rowsFilename.value,
+ schemas.value,
+ manualForeignKeys.value)
Seq(file(tablesFilename.value), file(rowsFilename.value))
}