2011-12-20 12 views
18

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

+0

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

risposta

34

L'aggiunta di applyEvolutions.default=true al proprio application.conf abiliterà le evoluzioni per impostazione predefinita nell'applicazione.

+0

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. –

+0

Questo era necessario per Play 2.0.2, non sono sicuro di 2.0.3 –

+1

Sto usando Play 2.2.xe avvio di un'applicazione con% play -DapplyEvolutions.default = true che funziona perfettamente. – Langley

3

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.

+2

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.] –

+0

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 –

3

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.

Problemi correlati