Vorrei eseguire manualmente lo script di evoluzione all'inizio di ogni file di test. Sto lavorando con Play! 2.4 e Slick 3.Come applicare manualmente le evoluzioni nei test con Slick e Play! 2.4
Secondo la documentazione, la strada da percorrere sembra essere:
Evolutions.applyEvolutions(database)
ma non riesco a ottenere un'istanza del mio database. Nel documentationplay.api.db.Databases
viene importato al fine di ottenere un'istanza di database, ma se cerco di importarlo, ottengo questo errore: object Databases is not a member of package play.api.db
Come posso ottenere un'istanza di mio database per eseguire lo script evoluzione?
Edit: come richiesto nei commenti, qui è l'intero codice sorgente che dà l'errore:
import models._
import org.scalatest.concurrent.ScalaFutures._
import org.scalatest.time.{Seconds, Span}
import org.scalatestplus.play._
import play.api.db.evolutions.Evolutions
import play.api.db.Databases
class TestAddressModel extends PlaySpec with OneAppPerSuite {
lazy val appBuilder = new GuiceApplicationBuilder()
lazy val injector = appBuilder.injector()
lazy val dbConfProvider = injector.instanceOf[DatabaseConfigProvider]
def beforeAll() = {
//val database: Database = ???
//Evolutions.applyEvolutions(database)
}
"test" must {
"test" in { }
}
}
puoi pubblicare il codice sorgente che sta causando la errore? – kukido
Qui viene posta la stessa domanda: http://stackoverflow.com/questions/31884182/play-2-4-2-play-slick-1-0-0-how-do-i-apply-database-evolutions- to-a-slick-man – Simon
Ho avuto problemi con la risposta di seguito che sembrava funzionare inizialmente, e ho trovato una soluzione diversa che faccio riferimento qui invece di copiare: http://stackoverflow.com/questions/42368523/play-tests/42416309 # 42.416.309 connessioni -con-Database-troppo-molti-. Le evoluzioni – JulienD