How could I know if a database table is exists in ScalaQuery

前端 未结 6 952
日久生厌
日久生厌 2020-12-29 13:15

I\'m trying ScalaQuery, it is really amazing. I could defined the database table using Scala class, and query it easily.

But I would like to know, in the following c

6条回答
  •  [愿得一人]
    2020-12-29 13:50

    Here's a full solution that checks on application start using a PostGreSQL DB for PlayFramework

    import globals.DBGlobal
    import models.UsersTable
    import org.scalaquery.meta.MTable
    import org.scalaquery.session.Session
    
    import play.api.GlobalSettings
    import play.api.Application
    
    object Global extends GlobalSettings {
    
        override def onStart(app: Application)  {
    
            DBGlobal.db.withSession { session : Session =>
                import org.scalaquery.session.Database.threadLocalSession
                import org.scalaquery.ql.extended.PostgresDriver.Implicit._
                if (!makeTableMap(session).contains("tableName")) {
                    UsersTable.ddl.create(session)
                }
            }
        }
    
        def makeTableMap(dbsess: Session): Map[String, MTable] = {
            val tableList = MTable.getTables.list()(dbsess)
            val tableMap = tableList.map {
            t => (t.name.name, t)
        }.toMap
            tableMap
        }
    }
    

提交回复
热议问题