De vários links encontrados na internet e também com base na resposta do cvogt este é o mínimo que você precisa fazer.
Observe que esta é uma solução geral para sbt. Se você está lidando com a estrutura do jogo, pode achar mais fácil executar esta tarefa com o plug-in relevante
Antes de tudo, você precisa de um novo projeto sbt por causa de todas as dependências de biblioteca que precisam ser referenciadas para que o gerador de código-fonte slick seja executado.
Crie o novo projeto sbt usando este tutorial:http://scalatutorials.com/beginner/2013/07/18/getting-started -com-sbt/
Use preferencialmente o método Configuração usando giter8
Se acontecer de funcionar com o Intellij, você precisará criar o arquivo
project/plugins.sbt
e insira dentro desta linha:addSbtPlugin("com.hanhuy.sbt" % "sbt-idea" % "1.6.0")
.Executar
gen-idea
em sbt para gerar um projeto intellij. Com giter8 você obtém um arquivo gerado automaticamente ProjectNameBuild.scala dentro da pasta do projeto. Abra isso e inclua pelo menos estas dependências de biblioteca:
libraryDependencies ++= List(
"mysql" % "mysql-connector-java" % "5.1.27",
"com.typesafe.slick" %% "slick" % "2.0.0",
"org.slf4j" % "slf4j-nop" % "1.6.4",
"org.scala-lang" % "scala-reflect" % scala_version
)
onde scala version é a variável
private val scala_version = "2.10.3"
Agora crie o gerador de código-fonte personalizado que se parece com isso:
import scala.slick.model.codegen.SourceCodeGenerator
object CustomSourceCodeGenerator {
import scala.slick.driver.JdbcProfile
import scala.reflect.runtime.currentMirror
def execute(url: String,
jdbcDriver: String,
user: String,
password: String,
slickDriver: String,
outputFolder: String,
pkg: String) = {
val driver: JdbcProfile = currentMirror.reflectModule(
currentMirror.staticModule(slickDriver)
).instance.asInstanceOf[JdbcProfile]
driver.simple.Database.forURL(
url,
driver = jdbcDriver,
user = user,
password = password
).withSession {
implicit session =>
new SourceCodeGenerator(driver.createModel).writeToFile(slickDriver, outputFolder, pkg)
}
}
}
Finalmente, você precisa chamar isso de
execute
método dentro do objeto do projeto principal. Encontre o arquivo ProjectName.scala que foi gerado automaticamente pelo giter8.Dentro dele você encontrará um
println
call, pois este é apenas um aplicativo "hello world". Acima de println
chame algo assim:CustomSourceCodeGenerator.execute(
url = "jdbc:mysql://127.0.0.1/SOME_DB_SCHEMA?characterEncoding=UTF-8&useUnicode=true",
slickDriver = "scala.slick.driver.MySQLDriver",
jdbcDriver = "com.mysql.jdbc.Driver",
outputFolder = "/some/path",
pkg = "com.pligor.server",
user = "root",
password = "xxxxxyourpasswordxxxxx"
)
Dessa forma, toda vez que você executar
sbt run
você irá gerar automaticamente as classes de Tabela exigidas pelo Slick