6

Quindi, sto cercando di implementare la mia semplice app Play Framework 2.1.1 ma ogni volta che passo i flag attraverso la riga di comando per la porta e per applicare le evoluzioni del database, vengono ignorati.Play Framework 2.1.1 Problemi di distribuzione

Ad esempio:

sudo play start -Dhttp.port=80 -DapplyEvolutions.default=true

Utilizzando questo comando, il server non si avvia. Sia il porto e applyEvolutions = flag veri vengono ignorate completamente e getta questo errore:

[warn] play - Your production database [default] needs evolutions! [warn] play - Run with -DapplyEvolutions.default=true if you want to run them automatically (be careful) Oops, cannot start the server. @6elhl9mca: Database 'default' needs evolution!

Ho provato tutto quello che posso pensare senza alcun risultato. L'utilizzo di Play Run sulla mia macchina locale funziona correttamente, senza problemi. Il server sta eseguendo Ubuntu 12.04. Tutti i driver e le stringhe di connessione corretti sono presenti e testati, il database è in esecuzione, tutto funziona senza problemi, tranne Play Framework.

+0

Aggiornamento: Posso "hardcodificare" applyEvolutions.default = true in application.conf, e ciò funziona, ma l'impostazione di http.port non funziona allo stesso modo nello stesso modo. Qualche consiglio su come impostare la porta HTTP? –

risposta

6

Ok, quindi non ho trovato una soluzione per questo, ma ho trovato una soluzione alternativa. Questo non è da nessuna parte nella documentazione 2.x Riproduzione quadro (ancora), quindi immagino lo metterò qui nel caso in cui qualcun altro si blocca:

Mettere applyEvolutions.default=true in application.confFA lavoro, e farà di database le evoluzioni si applicano automaticamente. L'argomento della riga di comando -DapplyEvolutions.default=trueNON funziona e viene ignorato per motivi sconosciuti.

Inserire http.port=80 in application.confNON funziona lavoro. L'argomento della riga di comando -Dhttp.port=80 anche NON funziona per l'impostazione del numero di porta su cui eseguire.

Quindi, per impostare il numero di porta utilizzare questo comando:

play "start 80" o play "run 80" (usare le virgolette esattamente come indicato).

Per qualche motivo quando il comando di porta è scritto esattamente come sopra tra virgolette, il numero di porta su cui eseguire è impostato correttamente.

Questo non è disponibile nella documentazione di framework. Vorrei creare un'altra richiesta di pull per aggiungerla, ma l'ultimo problema che ho risolto per questo framework (crittografia del database) è stato denigrato solo come "caso d'uso limitato e di nicchia" e l'aggiornamento della documentazione è stato quindi negato. Potrei comunque provare comunque.

Spero che questo aiuti qualcuno.

+0

Questi comandi funzionano ma devi inserirli tra virgolette.Es: suona "run 8080" dai un'occhiata alla risposta di James. – kingdamian42

+0

Sì, lo vedo ora. Il problema è che la documentazione non dice che da nessuna parte e in realtà fornisce esempi contrari. –

+1

Presume che si stia utilizzando la console di gioco, nel qual caso le virgolette non sono necessarie. Puoi sempre [farglielo sapere] (https://github.com/playframework/play20/issues?state=open) se sembra non corretto;) – kingdamian42

10

In entrambi i

play "start -Dhttp.port=80 -DapplyEvolutions.default=true" 

o

play dist 

poi, decomprimere e l'esecuzione dello script di avvio generato,

./start -Dhttp.port=80 -DapplyEvolutions.default=true 

funzionerà.

+2

Questo è fantastico, grazie. Il mio più grande problema è che molto poco di questo livello di dettaglio è nella documentazione. Grazie comunque. –