scala slick postgresql创建表模式
我是slick的新手,请查看以下简单代码:scala slick postgresql创建表模式,scala,slick,Scala,Slick,我是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
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.driver.PostgresDriver.api_
导入光滑。提升。{ProvenShape,Tag}
案例类人物(id:Int,name:String)
类Persons(tag:tag)扩展表[Person](tag,“Persons”){
val id:Rep[Int]=列[Int](“id”,O.PrimaryKey)
val名称:Rep[String]=列[String](“名称”)
覆盖定义*:ProvenShape[Person]=(id,name)(Person.tuple,Person.unapply)
}
对象MainRunner扩展应用程序{
val dbUrl=“jdbc:postgresql://172.17.0.2/slick-test";
val dbUsername=“用户名”
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查询=DBIO.seq(
persons.schema.create
)
val setup=db.run(查询)
println(设置)
}
您认为此代码有问题吗?此代码编译和运行时没有任何问题(错误或异常)
但无法创建表架构
怎么了 如果您是从play+slick开始的,那么这个项目可能会帮助您:
- 还有教程
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)