При использовании tableQuery.ddl.create создаются только столбцы в проекции. Однако в нашем случае есть столбцы, которые используются ТОЛЬКО для фильтрации и/или упорядочивания, поэтому они не являются частью проекции, но их необходимо создать:
case class CacheEntry(source: String, destination: String, hops: Int)
class CacheTable(tag: Tag) extends Table[CacheEntry](tag, "cache") {
def source = column[String]("source")
def destination = column[String]("dest")
def hops = column[Int]("hops")
def timestamp = column[LocalDateTime]("ts", O.DBType("timestamp default now"))
def * = (source, destination, hops) <> ((CacheEntry.apply _).tupled, CacheEntry.unapply)
}
Как мы можем убедить Slick создать столбец timstamp с TableQuery[CacheTable].ddl.create
?
Подходим ли мы к этому неправильно? Мы определенно НЕ хотим, чтобы ts отображались в CacheEntry (мы могли бы жить с этим в этом случае, но у нас есть более сложные случаи, когда это нежелательно)