Created
January 2, 2014 20:21
-
-
Save fdz5/8226038 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package sbt | |
import scala.slick.model.codegen.SourceCodeGenerator | |
import scala.slick.model.Model | |
/** | |
* | |
* | |
* User: filip | |
* Date: 01.01.14 | |
* Time: 14:42 | |
*/ | |
object CustomSourceCodeGenerator { | |
import scala.slick.driver.JdbcProfile | |
import scala.reflect.runtime.currentMirror | |
def main(args: Array[String]) = { | |
args.toList match { | |
case List(slickDriver, jdbcDriver, url, outputFolder, pkg, user, password) => { | |
val driver: JdbcProfile = { | |
val module = currentMirror.staticModule(slickDriver) | |
val reflectedModule = currentMirror.reflectModule(module) | |
val driver = reflectedModule.instance.asInstanceOf[JdbcProfile] | |
driver | |
} | |
driver.simple.Database | |
.forURL(url, driver = jdbcDriver, user = user, password = password) | |
.withSession { | |
implicit session => | |
(new SourceCodeGenerator(driver.createModel)).writeToFile(slickDriver, outputFolder, pkg) | |
} | |
} | |
case _ => { | |
println( """ | |
Usage: SourceCodeGenerator.main(Array( slickDriver, jdbcDriver, url, outputFolder, pkg )) | |
slickDriver: Fully qualified name of Slick driver class, e.g. "scala.slick.driver.H2Driver" | |
jdbcDriver: Fully qualified name of jdbc driver class, e.g. "org.h2.Driver" | |
url: jdbc url, e.g. "jdbc:postgresql://localhost/test" | |
outputFolder: Place where the package folder structure should be put | |
pkg: Scala package the generated code should be places in | |
""".trim | |
) | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment