2017-02-23 46 views
1

我想使用光滑codegen創建與以下設置一個SQLServer根據現有數據Tables.scala文件:油滑代碼生成隨着SQLServer的和DBO模式

slick.codegen.SourceCodeGenerator.main(Array("slick.jdbc.SQLServerProfile", 
              "com.microsoft.sqlserver.jdbc.SQLServerDriver", 
              "jdbc:sqlserver://myserver.com:1433;applicationName=TestCodeGen;integratedSecurity=true;authenticationScheme=NativeAuthentication;databaseName=MYDB", 
              "src/main/scala/", 
              "com.mypackage", 
              "myUserId", 
              "")) 

當我運行命令我得到沒有錯誤,但空Tables.scala生成文件(有數據庫中的幾十個表):

package com.mypackage 
// AUTO-GENERATED Slick data model 
/** Stand-alone Slick data model for immediate use */ 
object Tables extends { 
    val profile = slick.jdbc.SQLServerProfile 
} with Tables 

/** Slick data model trait for extension, choice of backend or usage in the cake pattern. (Make sure to initialize this late.) */ 
trait Tables { 
    val profile: slick.jdbc.JdbcProfile 
    import profile.api._ 
    import slick.model.ForeignKeyAction 

    /** DDL for all tables. Call .create to execute. */ 
    lazy val schema: profile.SchemaDescription = profile.DDL(Nil, Nil) 
    @deprecated("Use .schema instead of .ddl", "3.0") 
    def ddl = schema 
} 

我懷疑是有與事實SQLServer是使用dbo架構,但一個問題schemagen在codegen調用的任何地方都沒有指定(所有的表被命名爲「dbo..TableName」)。

所以我的問題是:做我需要指定「DBO」在代碼生成配置的地方,如果是這樣,如何?

如果答案是沒有什麼需要做,那麼我該如何調試codegen顯然失敗,但沒有產生錯誤的事實?

預先感謝您的關懷和響應。

回答

1

儘管爲了直接連接com.microsoft驅動程序確實起作用,但我發現代碼生成時需要使用$來傳遞漂亮的jdbc SQLServerProfile。

Array("slick.jdbc.SQLServerProfile", 
     "slick.jdbc.SQLServerProfile$", 
     "jdbc:sqlserver://myserver.com:1433;applicationName=TestCodeGen;integratedSecurity=true;authenticationScheme=NativeAuthentication;databaseName=MYDB", 
     "src/main/scala/", 
     "com.mypackage", 
     "myUserId", 
     "") 

如果還是不行,請嘗試還加入了JTDS驅動程序庫中,並使用JTDS風格網址:

"jdbc:jtds:sqlserver://myserver.com:1433;applicationName=TestCodeGen;integratedSecurity=true;authenticationScheme=NativeAuthentication;databaseName=MYDB" 

如果您JTDS依賴應該是這樣的:

libraryDependencies += "net.sourceforge.jtds" % "jtds" % "1.3.1"