scala slick postgresql创建表模式

时间:2016-12-17 08:41:22

标签: scala slick

我是新手,请查看这个简单的代码:

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)
}      
你觉得这段代码有问题吗? 这段代码编译运行没有任何问题(错误或例外)
但无法创建表架构!
怎么了 ?

2 个答案:

答案 0 :(得分:1)

我认为这不是关于会议(在Slick 3.x中没有这样的事情)。你遇到的问题是你不要等到操作完成(应用程序在创建模式之前完成;即 - 在ImportError: No module named libpgm执行之前完成)。

更改这些行:

Future

to(注意新的进口):

val setup = db.run(queries)
println(setup)

答案 1 :(得分:-1)

如果你从play + slick开始,这个项目可以帮助你: