diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2017-05-30 17:40:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-30 17:40:30 -0700 |
commit | 8a88c963be227a4eadae25c877a8de15aa4748a2 (patch) | |
tree | 6539f832ec411285a272839f0bef0bcdd54c289a /src/main/scala/SchemaParser.scala | |
parent | 0410511e2e4fc3eaacc4c58f8fd71d343be54b50 (diff) | |
parent | 5c0454a10fe09582fe72efe5b5392d02eb517325 (diff) | |
download | slick-codegen-plugin-8a88c963be227a4eadae25c877a8de15aa4748a2.tar.gz slick-codegen-plugin-8a88c963be227a4eadae25c877a8de15aa4748a2.tar.bz2 slick-codegen-plugin-8a88c963be227a4eadae25c877a8de15aa4748a2.zip |
Merge pull request #28 from drivergroup/citext-varying
PDW-772 treat postgres `citext` type like `text`
Diffstat (limited to 'src/main/scala/SchemaParser.scala')
-rw-r--r-- | src/main/scala/SchemaParser.scala | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/main/scala/SchemaParser.scala b/src/main/scala/SchemaParser.scala index 1186f11..6c3dd8c 100644 --- a/src/main/scala/SchemaParser.scala +++ b/src/main/scala/SchemaParser.scala @@ -3,9 +3,22 @@ import scala.concurrent.ExecutionContext.Implicits.global import slick.dbio.DBIO import slick.driver.JdbcProfile import slick.jdbc.meta.MTable +import slick.profile.RelationalProfile.ColumnOption.Length +import slick.profile.SqlProfile.ColumnOption.SqlType import slick.{model => m} -object SchemaParser { +object ModelTransformation { + + def citextNoLength(dbModel: m.Model): m.Model = + dbModel.copy(tables = dbModel.tables.map(table => + table.copy(columns = table.columns.map(column => + if (column.options contains SqlType("citext")) { + column.copy(options = column.options.filter { + case length: Length => false + case option => true + }) + } else column)))) + def references(dbModel: m.Model, tcMappings: Map[(String, String), (String, String)]) : Map[(String, String), (m.Table, m.Column)] = { @@ -26,7 +39,8 @@ object SchemaParser { } } - def parse(schemaTableNames: List[String]): Map[String, List[String]] = + def parseSchemaList( + schemaTableNames: List[String]): Map[String, List[String]] = schemaTableNames .map(_.split('.')) .groupBy(_.head) @@ -55,6 +69,6 @@ object SchemaParser { } } - jdbcProfile.createModel(filteredTables) + jdbcProfile.createModel(filteredTables).map(citextNoLength) } } |