Sbt 进化会自动创建数据库和表吗?

Sbt 进化会自动创建数据库和表吗?,sbt,playframework-2.4,slick-3.0,scala-2.11,Sbt,Playframework 2.4,Slick 3.0,Scala 2.11,我有一个类GroupTable,它创建了表的模式 正如我所看到的,在其他项目中,conf/evolution/default文件夹文件1.sql是由代码自动生成的(我假设) 但当我启动应用程序时,什么也不会产生。 我该怎么办?它是自动创建的还是我在代码中编写的 class GroupTable(tag: Tag) extends Table[Group](tag, "groups") { def name = column[String]("name", O.PrimaryKey)

我有一个类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)
  }
Build.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
name:=“TimetableAPI”
版本:=“1.0”
lazy val`timetableapi`=(文件中的项目(“.”)。启用插件(PlayScala)
规模规避:=“2.11.7”
libraryDependencies++=Seq(缓存、ws、规范2%测试、演进、,
“mysql”%“mysql连接器java”%“5.1.34”,
“com.typesafe.play”%%“play slick”%%“1.1.0”,
“com.typesafe.play”%%“play slick evolutions”%%“1.1.0”)

Test中的unmanagedResourceDirectory我不知道scalaz,但一般来说,演进不是自动创建的,而是手动编写的。每次对数据库进行更改时,都要编写下一个编号的sql文件,以应用更改(递增)和删除更改(递减)

您可以使用数据库工具(如MySql Workbenches数据库同步功能)生成模型和实际数据库之间的“差异”。这些脚本可以帮助编写演进


更多文档。

我在Play框架中尝试了进化

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

因为您使用的是mysql

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

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

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

db.default.url="jdbc:h2:mem:play;MODE=MYSQL"
请参阅链接:

db.default.url="jdbc:h2:mem:play;MODE=MYSQL"