Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package app
- import com.google.inject.Guice
- import play.api.i18n.{Lang, Messages}
- import play.api.mvc.Results._
- import play.api.mvc.{RequestHeader, Result}
- import play.api._
- import play.api.mvc._
- import play.api.libs.concurrent.Execution.Implicits.defaultContext
- import play.api.Logger
- import play.api.Play
- import play.api.Play.current
- import play.api.db.DB
- import com.googlecode.flyway.core.Flyway
- /**
- * The global configuration.
- */
- object Global extends GlobalSettings {
- override def onStart(app: Application) {
- Logger.info("Application onStart starting")
- // run database migrations
- runDatabaseMigrations("default")
- Logger.info("Application onStart finished")
- }
- def runDatabaseMigrations(dbName: String) = {
- Logger.info("Database migrations starting")
- val migrationFilesLocation = s"db/migration/${dbName}"
- Play.current.resource(migrationFilesLocation) match {
- case Some(r) => {
- Logger.info(s"Directory for migration files found: ${migrationFilesLocation}")
- val flyway = new Flyway
- flyway.setDataSource(DB.getDataSource(dbName))
- flyway.setLocations(migrationFilesLocation)
- flyway.setInitOnMigrate(true)
- flyway.migrate()
- }
- case None => {
- Logger.warn(s"Directory for migration files not found: ${migrationFilesLocation}")
- }
- }
- Logger.info("Database migrations finished")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement