2016-02-03 8 views
3

У меня есть класс GroupTable, который делает схему таблицы.Создает ли эволюция автоматически базу данных и таблицу?

Как я уже видел, в других проектах есть файл conf/evolution/default folder 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) 
    } 

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 

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 

ответ

0

Я не знаю scalaz, но в целом, эволюция являются не автоматически создаются, они написанное вручную. Каждый раз, когда вы делаете изменения в своей базе данных, вы записываете следующий номерный файл sql, чтобы применить изменения (Ups) и удалить изменения (Downs).

Вы можете использовать инструменты базы данных (такие как функция синхронизации базы данных MySql Workbenches), генерируя «разницу» между моделью и фактической базой данных. Эти сценарии могут помочь в написании эволюций.

Дальнейшие документы here.

1

Я пробовал эволюцию в рамках игры.

Что касается вашего вопроса, «создать ли эволюция автоматически базы данных и таблицы?»

Поскольку вы используете MySQL,

1.) Нет, эволюция не создавать данные базы для вас , Вам нужно создать базу данных «testdb» и предоставить привилегию «root»

2.) Да, эволюция создаст данные Таблица для вас.

Почему бы не использовать H2 в качестве ядра базы данных для тестирования? Эволюция создаст базу данных и данные для вас с нуля (нет необходимости создавать базу данных). Вы также можете имитировать MySQL с использованием базы данных H2 двигатель:

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

Пожалуйста, смотрите ссылку: https://www.playframework.com/documentation/2.5.x/Developing-with-the-H2-Database

 Смежные вопросы

  • Нет связанных вопросов^_^