2015-05-04 16 views
12

Jak sprawdzić, czy tabela istnieje ze śliskim 3.0?Sprawdź istnienie tabeli w slick 3.0

Istniał sposób w poprzednich wersjach wycieku za pomocą:

MTable.getTables.list() 

Ale to już nie skompilować.

Ideą tej kwestii jest dynamicznie utworzyć tabelę, gdy nie istnieje, prawie tak:

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

Wypróbuj db.run (Mtable.getTables), który zwróci wartość Future – mohit

+0

Wykonała to komenda db.run. Zapomniałem, że wszystko jest DBIO w slick 3 –

Odpowiedz

15

Z Slick 3,0 MTable.getTables jest DBAction który miał być prowadzony za pośrednictwem instancji Database :

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

oczywiście, należy prawdopodobne zajmują się Future zwróconej przez db.run w sposób asynchroniczny (poprzez map lub dla zrozumienia) zamiast blokowania go tak, jak to zrobiłem dla przykładu.

+0

jest wywołanie metody toList obsługiwane przez to zapytanie? – stian

+1

Zwracana wartość 'MTable.getTables' jest strumieniem będącym implementacją' Seq', stąd możesz uzyskać listę wywołując funkcję 'toList', ponieważ każda implementacja' Seq' musi implementować funkcję 'toList' –

Powiązane problemy