2015-05-04 12 views
12

Come si controlla se esiste una tabella con slick 3.0?Verifica esistenza tabella in slick 3.0

ci fosse un modo nelle versioni precedenti di chiazza di petrolio utilizzando:

MTable.getTables.list() 

ma questo non più a compilare.

L'idea alla base di questa domanda è quello di creare dinamicamente una tabella quando non esiste, più o meno in questo modo:

if (Tables.contains("USERS") == false) 
    Users.createTable() 
+0

Provare db.run (Mtable.getTables) che restituirà un futuro – mohit

+0

La chiamata db.run lo ha fatto. Ho dimenticato che tutto è un DBIO in slick 3 –

risposta

15

Con Slick 3.0 MTable.getTables è un DBAction che doveva essere eseguito tramite un'istanza Database :

val tables = Await.result(db.run(MTable.getTables), 1.seconds).toList 

Naturalmente, si dovrebbe trattare probabile con il Future restituito da db.run in modo asincrono (tramite map o per la comprensione) anziché bloccarlo come ho fatto per l'esempio.

+0

è la chiamata al metodo List supportata da quella query? – stian

+1

Il valore di ritorno di 'MTable.getTables' è un flusso che è un'implementazione di' Seq', quindi è possibile ottenere una lista chiamando la funzione 'toList' perché ogni implementazione di' Seq' deve implementare una funzione 'toList' –

Problemi correlati