Wie kann ich überprüfen, ob eine Tabelle bereits erstellt wurde?
-
21-12-2019 - |
Frage
Jetzt verwende ich Slick mit Spray.Ich muss sagen, dass Slick allein mit Spray viel besser und nicht störend funktioniert als mit Play (was wirklich mühsam ist).
Allerdings kann ich ein großes Problem immer noch nicht lösen:Datenbankaufbau.
Wenn es für mich eine Möglichkeit gibt, vielleicht eine Liste zu übergeben TableQuery
zu einer Funktion, und sie gleicht Variablen, die ich übergeben habe, mit Tabellen in der Datenbank ab und erstellt nur solche, die nicht erstellt wurden?
Das wäre wirklich toll.
Angenommen, ich habe zwei Tabellen:
val articles = TableQuery[ArticleTable]
val users = TableQuery[UserTable]
Ich erstelle eine Funktion, die so aussehen könnte:
def createDatabase(list: List[TableQuery[*]]) {
//.... (something like: (Article.articles.ddl ++ User.users.ddl).create)
}
Lösung
Etwas wie someTableQuery.baseTableRow.tableName sollte Ihnen den Tabellennamen geben.Mit MTable.apply können Sie Tabellen abfragen.Github durchsucht den Slick-Code nach Beispielen für MTable.