Questo post recente, How to use Evolutions in Play Framework 2.0?, afferma che le evoluzioni verranno automaticamente applicate durante l'esecuzione di Play 2.0. Ho provato il download di beta 2.0 e l'ultimo codice git e non vedo questo comportamento. In effetti, non riesco a trovare alcun modo per applicare le evoluzioni nella modalità di produzione. Mi sto perdendo qualcosa?Evoluzioni in esecuzione su Play Framework 2.0
risposta
L'aggiunta di applyEvolutions.default=true
al proprio application.conf abiliterà le evoluzioni per impostazione predefinita nell'applicazione.
Questo non sembra essere necessario ... La documentazione per la versione 2.0.3 (http://www.playframework.org/documentation/2.0.3/Evolutions) indica, "le evoluzioni si attivano automaticamente" e "Play controlla lo stato dello schema del database prima di ogni richiesta in modalità DEV" ... A meno che quanto sopra non sia rilevante solo in modalità 'PROD' (??). Ma la documentazione non sembra menzionare affatto questo parametro di configurazione. –
Questo era necessario per Play 2.0.2, non sono sicuro di 2.0.3 –
Sto usando Play 2.2.xe avvio di un'applicazione con% play -DapplyEvolutions.default = true che funziona perfettamente. – Langley
Prova una delle applicazioni di esempio di Play 20 e ti verrà chiesto di applicare le evoluzioni all'avvio dell'applicazione: la richiesta verrà visualizzata nel browser dell'applicazione la prima volta che avvii l'app.
Funziona in modalità dev, ma se eseguo gli esempi in modalità produzione, ottengo immediatamente la seguente eccezione: Spiacenti, impossibile avviare il server. play.api.db.evolutions.InvalidDatabaseRevision: il database "predefinito" ha bisogno di evoluzione! [Uno script SQL deve essere eseguito sul tuo database.] –
buon punto, sembra qualcosa che deve essere implementato in un prossimo futuro. puoi ancora avviarlo in dev, applicare l'evoluzione e quindi passare a prod. Ma sono d'accordo, dovrebbe funzionare come gioco 1.0 –
A partire da RC-3, la nuova posizione degli script di evoluzione è in conf/evolutions/[nomedb] /1.sql. Altrimenti, le informazioni di cui sopra sono tutte ancora accurate.
Penso che ci sia un equivoco sulla frase "le evoluzioni si attivano automaticamente". Questa frase è nel contesto di "Puoi disabilitarli impostando evolutionplugin = disabled". Attivato non significa "applicato automaticamente". Ho certamente sofferto di questo equivoco. – GreenAsJade