加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读