scala slick postgresql创建表模式
发布时间:2020-12-16 19:23:50 所属栏目:安全 来源:网络整理
导读:我是新手,请查看这个简单的代码: import slick.driver.PostgresDriver.api._import slick.lifted.{ProvenShape,Tag}case class Person(id: Int,name: String)class Persons(tag: Tag) extends Table[Person](tag,"persons") { val id: Rep[Int] = column[In
我是新手,请查看这个简单的代码:
import slick.driver.PostgresDriver.api._ import slick.lifted.{ProvenShape,Tag} case class Person(id: Int,name: String) class Persons(tag: Tag) extends Table[Person](tag,"persons") { val id: Rep[Int] = column[Int]("id",O.PrimaryKey) val name: Rep[String] = column[String]("name") override def * : ProvenShape[Person] = (id,name) <> (Person.tupled,Person.unapply) } object MainRunner extends App { val dbUrl = "jdbc:postgresql://172.17.0.2/slick-test"; val dbUsername = "username" val dbPassword = "password" val dbDriver = "org.postgresql.Driver" val db = Database.forURL(url = dbUrl,driver = dbDriver,user = dbUsername,password = dbPassword) val persons = TableQuery[Persons] val queries = DBIO.seq( persons.schema.create ) val setup = db.run(queries) println(setup) } 你觉得这段代码有问题吗? 解决方法
我认为这不是关于会议(在Slick 3.x中没有这样的事情).你遇到的问题是你不要等到操作完成(应用程序在创建模式之前完成;也就是说 – 在Future执行之前).
改变这些行: val setup = db.run(queries) println(setup) 到(注意新进口): import import scala.concurrent.duration.DurationLong import scala.concurrent.{Await,Future} ... ... val setup = db.run(queries).foreach(_ => println("Done,schema created!)) Await.result(setup,5L.seconds) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |