evolution会自动创建数据库和表吗?

Azu*_*ula 6 sbt scala-2.11 slick-3.0 playframework-2.4

我有类GroupTable,它可以生成表的模式.

正如我所看到的,在其他项目中有conf/evolution/default文件夹文件1.sql,它是从代码自动生成的(我假设).

但是当我启动我的应用程序时 - 什么都没有创

我该怎么办?是自动创建还是我在代码中编写它?

 class GroupTable(tag: Tag) extends Table[Group](tag, "groups") {
    def name = column[String]("name", O.PrimaryKey)

    def day = column[String]("day")

    def subject = column[String]("subject")

    def typeSub = column[String]("typeSub")

    def start = column[Time]("start")

    def end = column[Time]("end")

    def teacher = column[String]("teacher")

    def auditorium = column[Int]("auditorium")

    override def * = (name, day, subject, typeSub, start, end, teacher, auditorium) <>((Group.apply _).tupled, Group.unapply)
  }
Run Code Online (Sandbox Code Playgroud)

application.conf:

slick.dbs.default.driver = "slick.driver.MySQLDriver$"
slick.dbs.default.db.driver="com.mysql.jdbc.Driver"
slick.dbs.default.db.url="jdbc:mysql://localhost:3306/testdb"
slick.dbsdefault.user="root"
slick.dbs.default.password=""

play.evolutions.autoApply=true

evolutionplugin=enabled
play.evolutions.db.default.autoApply=true
play.evolutions.db.default.autoApplyDowns=true
Run Code Online (Sandbox Code Playgroud)

built.sbt:

name := "TimetableAPI"

version := "1.0"

lazy val `timetableapi` = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.7"

libraryDependencies ++= Seq(cache, ws, specs2 % Test, evolutions,
  "mysql" % "mysql-connector-java" % "5.1.34",
  "com.typesafe.play" %% "play-slick" % "1.1.0",
  "com.typesafe.play" %% "play-slick-evolutions" % "1.1.0")

unmanagedResourceDirectories in Test <+= baseDirectory(_ / "target/web/public/test")

resolvers += "scalaz-bintray" at "https://dl.bintray.com/scalaz/releases"

routesGenerator := InjectedRoutesGenerator
Run Code Online (Sandbox Code Playgroud)

Car*_*pos 2

我在 Play 框架中尝试了进化。

至于你的问题,“进化会自动创建数据库和表吗?

由于您使用的是mysql,

1.) 不,进化不会为你创建数据库。您需要创建“testdb”数据库并授予“root”权限

2.) 是的,evolution 会为您创建数据

为什么不使用H2作为数据库引擎进行测试呢?进化将从头开始为您创建数据库和数据表(无需创建数据库)。您还可以使用 H2 数据库引擎模仿 mysql:

db.default.url="jdbc:h2:mem:play;MODE=MYSQL"
Run Code Online (Sandbox Code Playgroud)

请参阅链接: https ://www.playframework.com/documentation/2.5.x/Developing-with-the-H2-Database